恰逢一個簡單的小項目,尋思着體驗下 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
初始化項目完畢後,使用 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