Webpack plugin that transpiles dependencies targeting Node.js versions newer than Node.js 0.10
$ npm install --save--dev babel-engine-plugin
Within your webpack configuration object, you'll need to add the
babel-engine-plugin to the list of
const BabelEnginePlugin = ;moduleexports =entry: './app.js'output:filename: 'bundle.js'plugins:presets: 'env'
Module maintainers often only target Node.js and don't really care about browser support. Tools like Webpack allow you to easily bundle these modules and run them in the browser. But since Node.js 0.12 became deprecated, module maintainers started to leverage the new ES2016 features, for example fat-arrow functions. This becomes a problem because not all of these features are supported in the browser. Tools like UglifyJS doesn't like them either as it will fail with an
Unexpected Token error.
The most popular Webpack loader for Babel,
babel-loader, describes that you should exclude
node_modules because you should transpile as few files as possible. This means, you will also exclude all the modules that utilize the new ES2016 features.
This Webpack plugin only transpiles modules in
node_modules, if you need to transpile your source files as well, use
babel-loader. This plugin checks the
engines field in
package.json and only transpiles the dependency if it does not support Node.js 0.10.
The full discussion can be found here.
new BabelEnginePlugin([babelOptions, [pluginOptions]])
By disabling verbose logging, the plugin will only print the warning per package once.
- babel-loader - Webpack plugin for Babel
MIT © Sam Verschueren