koa2 + node7 是怎样的体验?

恰逢一个简单的小项目,寻思着体验下 koa2 + node7 的组合。之因此 koa 升级到 2.0 版本,一个重大改变是正式支持使用 async/await 开发中间件 ,而以前这个是经过 app.experimental = true 开启试验属性支持的;另外也再也不支持 node < 4 的版本,代码风格基于 ES6。而选择node7,是由于其对 ES7 的大部分语法已经支持(完整支持状况见:http://node.green/#ES2017),尤为是经过 --harmony 能够开启 async/await 支持。能够这么说,用了 node7,后端开发能够不用 babel 了。html

koa2 及其中间件

初始化项目完毕后,使用 npm i koa@next 安装 2.0 版本。一些 koa 相关的中间件也都提供了@next 版本,来支持 koa2,例如koa-bodyparser,经过 npm i koa-bodyparser@next 安装支持 koa2 的版本。node

测试 async/await

测试框架很少说,直接上 mocha,已经支持 async/await,回想一年多前还选择了一些 co-mocha 之类的库。而如今执行测试时,只需 mocha --harmony,一键启动 async/await,个人测试用例已经开始咆哮了~git

测试覆盖率检测,选择 istanbul,安装时要指明 1.0 以上版本,由于目前其 1.0 版本还处于 alpha 状态。只有安装 1.0 以上版本才能支持 async/await 的异步测试。执行测试时,须要node --harmony ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha npm

若是强制覆盖率达到多少,能够增长.istanbul.yml配置文件,内容以下:json

check:
    global:
        statements: 95            
        lines: 95
        branches: 80       // 这个是指 if/else 等分支的覆盖率,很容易理解偏 --!
        functions: 100

为了方便执行,在 package.json 增长以下命令:vim

"scripts": {
    "check-cover": "node --harmony ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- tests/* && ./node_modules/.bin/istanbul check-cover",
  }

后续每次提交,经过 git 钩子或者在 CI 里增长检查只须要一行 npm run check-cover 搞定。后端

代码风格

是时候尝试 JS standard style了,安装 npm i standard,接下来不用再配置其余繁杂的代码风格检测工具。它也支持 vim 等各类编辑器工具。当你遇到不符合规范的代码,直接 standard --fix 便能将你解决大部分问题。须要注意的时,因为测试用例中的 describe it 等全局关键字,须要在 package.json 中指明,配置以下:babel

"standard": {
    "globals": [
      "describe",
      "before",
      "beforeEach",
      "after",
      "afterEach",
      "it"
    ]
   }

配置完这些,基本上能够很愉快的用最新的姿式,写最爽的代码了,也不用去折腾 babel,除非你还要 import 的支持app

相关文章
相关标签/搜索