babel-preset-next
raw JSON → 1.4.0 verified Sat Apr 25 auth: no javascript
A Babel preset that includes plugins for async generator functions, class properties, object rest spread, and decorators, targeting Babel 7.0 and requiring @babel/core and babel-loader 8.0+. Version 1.4.0 is the latest release, with modest updates to Babel dependencies. This preset is minimal and opinionated, primarily intended for personal or small projects, and not widely adopted. It differs from more comprehensive presets like @babel/preset-env by offering a fixed set of plugins without dynamic targeting or polyfilling.
Common errors
error Cannot find module '@babel/core' ↓
cause @babel/core not installed as a dev or peer dependency.
fix
npm install --save-dev @babel/core
error Error: Plugin/Preset files are not allowed to export objects, only functions. ↓
cause Attempting to import the preset as an ES module or incorrect require.
fix
Use require('babel-preset-next') or string reference in .babelrc.
error Module build failed (from ./node_modules/babel-loader/lib/index.js): TypeError: Cannot read property 'bindings' of null ↓
cause Incompatible Babel version (e.g., Babel 6 with this preset).
fix
Upgrade to @babel/core 7+ and babel-loader 8+.
Warnings
deprecated Deprecated: async-generator-functions, class-properties, object-rest-spread, decorators are now part of @babel/preset-env or stage presets. ↓
fix Consider using @babel/preset-env with appropriate targets and plugin-proposal-* for individual proposals.
gotcha Requires Babel 7.0 and babel-loader 8.0+. Older versions will break. ↓
fix Ensure @babel/core >=7.0.0 and babel-loader >=8.0.0 are installed.
gotcha Default target is IE 9; if you target modern browsers, UglifyJS may fail on ES6+ syntax. ↓
fix Use babel-minify or upgrade webpack to v4 with latest uglifyjs-webpack-plugin.
breaking Breaking: v1.0.0 switched to Babel 7 plugins; not backward compatible with Babel 6. ↓
fix Migrate to Babel 7 if using this preset.
Install
npm install babel-preset-next yarn add babel-preset-next pnpm add babel-preset-next Imports
- default wrong
import presets from 'babel-preset-next'correctmodule.exports = { presets: ['next'] } - preset wrong
import { preset } from 'babel-preset-next'correctconst next = require('babel-preset-next') - options
// In .babelrc: { "presets": [["next", { "targets": { "ie": 9 } }]] }
Quickstart
// Install
npm install --save-dev @babel/core @babel/preset-env babel-loader babel-preset-next
// .babelrc
{
"presets": [
["next", {
"targets": {
"ie": 9
},
"debug": false
}]
]
}
// webpack.config.js (if using babel-loader)
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [['next', { targets: { ie: 9 } }]]
}
}
}
]
}
};