一般 Node.js 使用 ES6 最新的特性, 那么就需要使用 Babel。
简单介绍下ECMASCRIPT(JS)语法提案流程:
一种新的语法从提案到变成正式标准,需要经历五个阶段。每个阶段的变动都需要由 TC39 委员会批准。
- Stage 0 - Strawman(展示阶段)
- Stage 1 - Proposal(征求意见阶段)
- Stage 2 - Draft(草案阶段)
- Stage 3 - Candidate(候选人阶段)
- Stage 4 - Finished(定案阶段)
一个提案只要能进入 Stage 2,就差不多肯定会包括在以后的正式标准里面。ECMAScript 当前的所有提案,可以在 TC39 的官方网站Github.com/tc39/ecma262查看。
安装 es-checker
在使用 Babel 之前 , 我们先检测一下当前 node 对 es6 的支持情况。
在命令行下执行以下命令安装 es-checker:
全局安装
npm install -g es-checker
检测node环境对ES6的支持程度,执行下面命令:
es-checker
=========================================Passes 38 feature Detections
Your runtime supports 90% of ECMAScript 6
=========================================
安装 babel
在工作目录下打开命令行,执行以下命令安装 babel-cli:
npm install babel-cli --save
再安装一个全局的 babel-cli:
npm install babel-cli -g
接着在工作目录创建一个名字为 .babelrc 的文件, 文件内容入如下:
{
"presets": [
"es2015"
],
"plugins": []
}
安装 babel-preset-es2015
在工作目录,执行以下命令安装 babel-preset-es2015:
npm install babel-preset-es2015 --save
import
test
from
'./test';
console.
log(
'this is a test!' +
test);
test.js
// module.exports = 'a'
@
testable
class
MyTestableClass {
// ...
}
function
testable(
target) {
target.
isTestable =
true;
}
module.
exports =
MyTestableClass.
isTestable
// true
最后执行 babel-node app.js
==> this is a test!true
这样babel就可以在代码执行时先把ES6的语法转换成es5的语法了。