首先,node环境是不支持es6环境的,别像我一样傻傻的看着报错不知道怎么回事
0x1 Babel
Babel 是目前最流行的转码工具,代码编译器,我们使用它来实现我们的功能。
0x2 准备工作
首先需要在你的项目中安装相关的包,执行下面的命令
$ npm install --save-dev babel-cli babel-preset-env # babel-cli 和 es6+ 最新语法
$ npm install --save-dev babel-preset-stage-0 # es6+ 阶段性提案语法 stage-0 包含stage1,2,3
$ npm install --save-dev babel-register # 钩子,在程序入口文件引入即可实现转码
$ npm install --save babel-polyfill # babel转码时不能识别一些全局对象的API,例如Object.assign,使用它可以解决这个问题
0x3 配置 .babelrc
在项目中新建 .babelrc
文件:
{
"presets": [
"env",
"stage-0"
]
}
0x4 配置入口文件
加入您的项目的启动文件是 app.js
,则我们可以新创建一个入口文件,例如在当前目录新建一个文件 index.js
:
// bin.js
require('babel-polyfill');
require('babel-register');
require('./app.js'); // 这个地方引入您的项目的启动文件
大工告成,最后运行命令,即可完美转码并运行 ES6+:
$ node index.js
注意:
程序的启动文件是index.js, 不是app.js , 运行的是index.js, 开发代码在app.js
因为使用了 babel-register
,这套配置会在代码运行的过程中进行转码(内存中),所以只适用于开发环境,不可用于生产环境