自动重新加载Koa服务器

我已经开始玩Koa了 ,但到目前为止一直没有find一个体面的解决scheme,自动重新加载应用程序的代码更改。

我的理解是nodemon是Node宇宙中的首选解决scheme,但由于--harmony标志(Koa要求),我得到错误:

 $ node_modules/.bin/nodemon /path/to/node-unstable/bin/node app.js /path/to/node-unstable/bin/node --harmony $@ ^^^^^^^ SyntaxError: Unexpected identifier [nodemon] app crashed - waiting for file changes before starting... 

node_modules/.bin/nodemon --harmony-generators app.js应该足够了

我想推荐你“pm2”: http : //pm2.keymetrics.io/

pm2是一名进程pipe理员。 它pipe理您的应用程序状态,因此您可以启动,停止,重新启动和删除进程。

您可以轻松地安装pm2(通常在您的机器上)input:sudo npm install -g pm2

基本上pm2当看到你的代码的一些变化,他重新启动你的进程istantly,如果你的进程崩溃,他将被重新启动,错误将被logging..欲了解更多信息看看文档页面: http://pm2.keymetrics .IO /文档/使用/集群模式/

在这个gulp任务中设置'execMap'选项适用于我:

 var nodemon = require('gulp-nodemon'); gulp.task('serve-dev', function() { var options = { script: './src/server/app.js', execMap: { "js": "node --harmony" }, delayTime: 1, env: { 'PORT': port, 'NODE_ENV': 'dev' }, watch: ['./src/server/'] }; return nodemon(options); }); 

显然你的其他select可能会有所不同,但是我把整个事情都包括在内,因为当我在学习某些东西的时候,它使我感到懊恼,只能看到答案中的最低限度。

我最近完成了使用KOA创build一个简单的Web API,并且对于代码更改之后的重新加载操作,我使用了babel-watch

使用它的好处已经在回购中说明了:

如果您厌倦了将babel-node和nodemon(或类似的解决scheme)一起使用。 上述设置执行得如此糟糕的原因是babel-node本身的启动时间。 babel-watch只会在“主”进程中启动babel,并启动文件监视器。 这个过程也是在这个过程中进行的。 在文件观察者事件上,它生成一个纯节点进程,并将来自父进程的传输代码和源地图一起传递。 这使我们可以避免每次重新启动JS脚本/应用程序时加载babel及其所有代码。