Coder Social home page Coder Social logo

jianyf-jianyf / babel-engine-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from samverschueren/babel-engine-plugin

0.0 0.0 0.0 14 KB

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

License: MIT License

JavaScript 100.00%

babel-engine-plugin's Introduction

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

babel-engine-plugin's People

Contributors

samverschueren avatar jdufresne avatar dmikheev avatar arzafran avatar oligot avatar winstonewert avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.