使用ES6开发Nodejs程序

2016年11月12日 · 65 字 · 1 分钟

ES6发布有一段时间了。但是Nodejs对此支持度还有待加强,就像前端可以使用babel+webpack构建基于ES6的工作流,其实Nodejs也是可以的(不需要手动编译)。当然,最终部署到生产服务器时要记得部署编译后的版本,否则运行时编译对性能是一种损失。

实践

npm init -y
npm install babel-core babel-register babel-polyfill --save
npm install babel-preset-es2015 babel-preset-stage-3  babel-plugin-transform-class-properties --save

有个需要注意的问题是,nodejs直接执行的那个js文件还是得用原生JS语法(具体取决于Nodejs支持ES6的程度),比如在Nodejs v4.2.6下,可以使用 const 关键字,这个是不需要babel的。

推荐目录结构如下:

|--bin
   |--a.js
   |--b.js
|--bootstrap
   |--a.js
   |--b.js

在项目根目录添加 .babelrc 文件,代码如下:

{
  "presets": [
    "stage-3",
    "es2015"
  ],
  "plugins": [
    "transform-class-properties"
  ]
}

bin 目录是真正的业务逻辑部分,可以使用ES6开发,bootstrap相当于一个启动脚本目录,示例代码如下(bootstrap/a.js):

require('babel-register');
require('babel-polyfill');
require('../bin/a');

单元测试

编写单元测试脚本也是可以使用ES6的,这里使用 mocha 为例,编写好测试用例后,在启动mocha命令时添加参数 –compilers,示例如下:

mocha --compilers=babel-register

代码编译

代码编译需要使用babel-cli,终端执行:

npm install babel-cli --save-dev
babel bin -d lib

执行完毕后babel会自动生成lib目录,该目录为编译后的代码。