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

相關文章
相關標籤/搜索