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.

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.
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.
npm install babel-preset-backpack
yarn add babel-preset-backpack
pnpm add babel-preset-backpack

Shows how to configure babel-preset-backpack in a .babelrc file, with or without options, and includes the required install command.

// .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