babel-preset-backpack
raw JSON → 0.8.4 verified Sat Apr 25 auth: no javascript maintenance
Babel preset for Backpack projects, version 0.8.4 (final release, 2019). It configures Babel to target Node.js environments with ES6+ transpilation. Used internally by Backpack, but can be used independently. Key differentiators: includes specific plugins for Backpack's needs (async to generator, object rest/spread with useBuiltIns). Maintenance mode since 2019; no updates for Babel 8 or newer Node versions. Alternatives: @babel/preset-env.
Common errors
error Error: Cannot find module '@babel/core' ↓
cause Babel core is a required peer dependency of babel-preset-backpack and must be installed explicitly.
fix
Run: npm install --save-dev @babel/core
error SyntaxError: Unexpected token: punc (.) ↓
cause Preset uses plugins that may require older Babel 7 beta versions; using Babel 7 stable with preset 0.8.0 or 0.8.1 may cause incompatibilities.
fix
Upgrade babel-preset-backpack to >=0.8.1 which supports Babel 7 final, or use @babel/preset-env instead.
error Module build failed: Error: Plugin/Preset files are not allowed to export objects, only functions. ↓
cause Attempting to import babel-preset-backpack directly via require() in a JavaScript file rather than referencing it as a string in Babel config.
fix
Use the string 'backpack' in your Babel configuration (.babelrc, babel.config.js, etc.).
error WARNING: We noticed you're using the `useBuiltIns` option without declaring a core-js version. Currently, we assume version 2.x. ↓
cause Preset does not set a core-js version explicitly; Babel uses default core-js version 2.
fix
Specify core-js version in Babel config: { presets: [['backpack', { useBuiltIns: 'usage', corejs: 3 }]] } or install core-js@2.
Warnings
gotcha Requires @babel/core 7.x; incompatible with Babel 6.x and 8.x. ↓
fix Use @babel/core@^7.0.0 and ensure no Babel 6 packages are present.
deprecated This preset is effectively unmaintained since 2019. Backpack itself is no longer actively developed. ↓
fix Migrate to @babel/preset-env for modern projects.
breaking Version 0.8.0 introduced breaking changes moving from Babel 6 to Babel 7, and Webpack 3 to 4. ↓
fix Upgrade to 0.8.1 or later for compatibility with Babel 7 final releases.
gotcha Preset assumes Object.assign is available or polyfilled; does not include a polyfill itself. ↓
fix Use core-js or @babel/polyfill with useBuiltIns option if targeting older Node versions.
breaking Version 0.8.2 removed json-loader dependency, which may break Webpack configs that rely on it. ↓
fix If using Webpack <4, add json-loader explicitly to your Webpack config.
deprecated Preset includes transform-object-rest-spread (deprecated in Babel 7); use @babel/plugin-proposal-object-rest-spread instead. ↓
fix If you need to replicate behavior, manually add the plugin to your Babel config.
Install
npm install babel-preset-backpack yarn add babel-preset-backpack pnpm add babel-preset-backpack Imports
- babel-preset-backpack wrong
require('babel-preset-backpack')correctmodule.exports = { presets: ['backpack'] } - useBuiltIns wrong
use-built-inscorrect{ presets: [['backpack', { useBuiltIns: 'entry' }]] } - default
import preset from 'babel-preset-backpack' (but not recommended)
Quickstart
// .babelrc
{
"presets": ["backpack"]
}
// or with options
{
"presets": [
["backpack", { "useBuiltIns": "entry" }]
]
}
// install: npm install --save-dev babel-preset-backpack @babel/core @babel/plugin-proposal-object-rest-spread @babel/plugin-transform-async-to-generator