作者:会痛的石头
日期:2016年8月25日
babel中文网
在ES6新功能的驱动下,ES6编程已经越来普遍。node5之后对ES6做了更好的支持,但并非所有的特性都已经完美支持,比如module。
[Babel](https://babeljs.io/)是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。
举个例子如下:
ES6:
import {square,diag} from ‘expt’ —-需转换1
export const sqrt=Math.sqrt —-需转换2
export function square(x){ —-需转换3
return x*x
}
ES5:
‘use strict’
var _lib = require(‘./es5expt’) ——-转换1
Object.defineProperty(exports, "__esModule", {
value: true
});
var sqrt = exports.sqrt = Math.sqrt;
function square(x) {
return x * x;
}
exports.square = square; -------转换2
exports.diag = diag; -------转换3
这样就能在当前环境下完美运行ES6了,Babel的具体使用步骤如下:
1、创建配置文件.babelrc
该配置文件存放在根目录下,与package.json同级。
该文件设置转码规则和相应的插件,基本格式如下:
{
“presets”: [ //字段设定转码规则
“es2015”
],
“plugins”: [] //插件
}
常用presets插件有:
# ES2015转码规则
npm install –save-dev babel-preset-es2015
# react转码规则 npm install –save-dev babel-preset-react
# ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个
npminstall–save−devbabel−preset−stage−0
npm install –save-dev babel-preset-stage-1
npminstall–save−devbabel−preset−stage−2
npm install –save-dev babel-preset-stage-3
2、babel-cli命令行转码
①全局
安装:
npm install –g babel-cli
指令:
# 转码结果输出到标准输出 babel example.js
# 转码结果写入一个文件
# –out-file 或 -o 参数指定输出文件
babel example.js –out-file compiled.js
# 或者 babel example.js -o compiled.js
# 整个目录转码
# –out-dir 或 -d 参数指定输出目录
babel src –out-dir lib
# 或者 babel src -d lib
# -s 参数生成source map文件
$ babel src -d lib -s
②项目级
安装
npminstall–save−devbabel−cli配置package.json://…“devDependencies”:“babel−cli”:“6.0.0”,“scripts”:“build”:“babelsrc−dlib”,运行
num run build