Skip to content

Webpack plugin that transpiles dependencies targeting Node.js versions newer than Node.js 0.10

License

Notifications You must be signed in to change notification settings

SamVerschueren/babel-engine-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

babel-engine-plugin Build Status

Webpack plugin that transpiles dependencies targeting Node.js versions newer than Node.js 0.10

Install

$ npm install --save-dev babel-engine-plugin

Usage

Within your webpack configuration object, you'll need to add the babel-engine-plugin to the list of plugins.

const BabelEnginePlugin = require('babel-engine-plugin');

module.exports = {
    entry: './app.js',
    output: {
        filename: 'bundle.js'
    },
    plugins: [
        new BabelEnginePlugin({
            presets: ['env']
        })
    ]
}

Why

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.

API

new BabelEnginePlugin([babelOptions, [pluginOptions]])

babelOptions

See babel options.

pluginOptions

verbose

Type: boolean
Default: true

By disabling verbose logging, the plugin will only print the warning per package once.

Related

License

MIT © Sam Verschueren

About

Webpack plugin that transpiles dependencies targeting Node.js versions newer than Node.js 0.10

Resources

License

Stars

Watchers

Forks

Packages

No packages published