前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Babel 6 特性总结

Babel 6 特性总结

作者头像
逆葵
发布2019-04-25 14:23:06
4230
发布2019-04-25 14:23:06
举报
文章被收录于专栏:FECodingFECoding

0. 改进

  • 模块化
  • 可选的插件
  • 预设
  • 性能改进
  • 插件 API
代码语言:javascript
复制
// Babel 5
export default function ( {Plugin, types: t} ) {
    return new Plugin('ast-transform', {
        visitor: { ... }
    });
}
                      
// Babel 6
export default function ( { types: t} ) {
    return {
        visitor: { ... }
    };
}

1.安装 Babel 6

npm install

  • babel-cli
    • usage: babel app.js
    • command:
      • -o --out-file
      • -d --out-dir
      • -w --watch
      • --source-maps
  • babel-register
代码语言:javascript
复制
 //index.js
console.log('Hello World!');
代码语言:javascript
复制
//register.js
require("babel-register");
require("./index.js");
代码语言:javascript
复制
node register.js

注:生产环境不适用

  • babel-node
代码语言:javascript
复制
{
  "scripts": {
    //"script-name": "node index.js"
    "script-name": "babel-node index.js"
  }
}

command:

  • --presets
  • --plugins
  • --ignore

注:生产环境不适用

  • babel-core
代码语言:javascript
复制
var babel = require("babel-core");

babel.transform("code();", options);
// => { code, map, ast }

babel.transformFile("filename.js", options, function(err, result) {
  result; // => { code, map, ast }
});

babel.transformFileSync("filename.js", options);
// => { code, map, ast }

2. 配置 Babel 6

代码语言:javascript
复制
//.babelrc

{
  "presets": [],
  "plugins": []
}


//or package.json
{
  ...
  "babel":{
    "presets": [],
  	"plugins": []
  }
}
  • presets
    • babel-preset-es2015
    • babel-preset-react
    • babel-preset-stage-x(x=0,1,2,3)
代码语言:javascript
复制
    {
    "presets": [
      "es2015",
      "react",
      "stage-2"
    ],
    "plugins": []
  }
  • plugins
    • babel-plugin-transform-es2015-classes
    • babel-plugin-transform-es2015-arrow-functions
代码语言:javascript
复制
{
    "plugins": [
      "transform-es2015-classes",
      "transform-es2015-arrow-functions"
    ]
  }
 
代码语言:javascript
复制
{
    "plugins": [
      //"transform-es2015-classes"
      ["transform-es2015-classes", { "loose": true }]
    ]
  }

扩展—— Babel 6 loose

  • 基于环境自定义 Babel
代码语言:javascript
复制
 {
    "presets": ["es2015"],
    "plugins": [],
    "env": {
      "development": {
        "plugins": [...]
      },
      "production": {
        "plugins": [...]
      }
    }
  }

env : process.env.BABEL_ENV or process.env.NODE_env

3. Webpack

代码语言:javascript
复制
//webpack.config.js
var path = require('path');
    ···
    module.exports = {
        ···
        module: {
            loaders: [
                {
                    loader: 'babel-loader',
                    test: path.resolve(__dirname, 'js'),
                    query: {
                        presets: ['es2015'],
                    },
                }
            ]
        },
        ···
    };
  • tree-shaking
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 改进
  • 1.安装 Babel 6
  • 2. 配置 Babel 6
  • 3. Webpack
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档