使用es6+ 编写 koa2
1.npm install koa-generator -g
2.koa2 your_prj
3.npm install
运行es2015 主要是因为依赖了runkoa,中间应该有一些转换,不清楚是编译时还是运行时。
{ "name": "koa_with_es2015", "version": "0.1.0", "private": true, "scripts": { "start": "./node_modules/.bin/nodemon bin/run", "koa": "./node_modules/.bin/runkoa bin/www", "pm2": "pm2 start bin/run ", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "co": "^4.6.0", "debug": "^2.2.0", "jade": "~1.11.0", "koa": "^2.0.0", "koa-bodyparser": "^2.0.1", "koa-convert": "^1.2.0", "koa-json": "^1.1.1", "koa-logger": "^1.3.0", "koa-onerror": "^1.2.1", "koa-router": "^7.0.0", "koa-static": "^2.0.0", "koa-views": "^5.0.1", "runkoa": "^1.3.1" }, "devDependencies": { "nodemon": "^1.8.1" } }
4.npm start http://localhost:3000
runkoa 里面整合了babel
目前看来这个webpack 主要是给前端用的
import from 在目前的node 上还不能完全用,因为很多node 插件还是用es5写的,只能用require module.exports 组合,自定义的组件比如路由是可以用的。
modure.exports = A 等价于 export default A
var a = require('./test') 等价于 import a from './test'
async await 是配套的,不能和yield * 混在一个函数上。
fetch 是html5 中的一个实现,用于替代ajax 基于promise,跟generator并不冲突
这是比较新的koa 整合例子:
https://github.com/yuqi17/dota2-match-ticker
http://www.tuicool.com/articles/B7Zzemn