2014-02-27 108 views
7

我已经开始玩Koa,但到目前为止一直没有找到一个体面的解决方案来自动重新加载应用程序的代码更改。自动重新加载Koa服务器

我的理解是,nodemon在节点宇宙的首选解决方案,但我由于--harmony标志(KOA公司要求)得到错误:

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

这个怎么样? '$ node_modules/.bin/nodemon -x“/ path/to/node-unstable/bin/node --harmony”app.js' – bnuhero

+0

谢谢,这很奏效 - 显然我应该更仔细地使用RTFM。 (尽管我最初在使用地址时遇到了一些问题,所以我编写了一个包装脚本来确保现有服务器先关闭。) – AnC

回答

10

node_modules/.bin/nodemon --harmony-generators app.js应足以

+0

这就是我所设想的,但是这给了我相同的语法错误。 – AnC

+0

也许你甚至没有使用节点v0.11 –

+0

你是对的,v0.11版本(故意)不在我的'PATH'上,所以不能工作 - 与'export PATH = “节点不稳定的/ bin中:$ PATH”'。 – AnC

1

在这个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); 
}); 

显然你的其他操作tions可能会有所不同,但我包括整个事情,因为当我在学习某些东西时只会看到答案中的最低限度。

3

我想向您推荐 “PM2”:http://pm2.keymetrics.io/

PM2是一个进程管理器。 它管理您的应用程序状态,因此您可以启动,停止,重新启动和删除进程。

您可以轻松地安装PM2打字(通常你的机器): 须藤NPM安装-g PM2

当看到在你的代码的一些变化基本上PM2,他istantly重新启动过程中,如果你的进程崩溃,他将重新启动并会记录错误.. 欲了解更多信息,把文档页面一看: http://pm2.keymetrics.io/docs/usage/cluster-mode/

0

我最近完成创建使用KOA一个简单的Web API,并作为以后代码更改重载行动我用babel-watch

0123如果你厌倦了使用巴贝尔节点与nodemon(或类似的解决方案)一起

使用它的好处已经在回购说明。上述设置执行得如此糟糕的原因是babel-node本身的启动时间。 babel-watch只在启动文件观察器的“主”过程中启动babel。这个过程也是在这个过程中进行的。在文件观察器事件上,它生成一个纯节点进程,并将来自父进程的传输代码与源地图一起传递。这使我们可以避免每次重新启动JS脚本/应用程序时加载babel及其所有代码。

相关问题