自动重新加载Koa服务器

我已经开始使用Koa了,但是到目前为止,还找不到合适的解决方案来在代码更改后自动重新加载应用程序。

我的理解是nodemon是Node Universe中的首选解决方案,但是由于该--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...
猴子村村2020/04/03 10:59:41

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

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

您可以轻松键入以下命令来安装pm2(通常在您的计算机上):sudo npm install -g pm2

基本上是pm2,当您看到代码中的某些更改时,他会立即重启您的进程,如果您的进程崩溃了,他将被重启并记录错误。有关更多信息,请查看文档页面: http://pm2.keymetrics .io / docs / usage / cluster-mode /

小胖2020/04/03 10:59:41

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

古一2020/04/03 10:59:41

我最近完成了使用KOA创建简单的Web API的步骤,至于代码更改后的重新加载操作,我使用了babel-watch

在仓库中已经说明了使用它的好处:

如果您厌倦了将babel-node与nodemon一起使用(或类似的解决方案)。前述设置执行如此差的原因是babel-node本身的启动时间。babel-watch仅在“主”进程中启动babel,在此过程中还将启动文件监视程序。在该过程中也进行了转译。在文件监视程序事件中,它将生成纯节点进程,并将来自父进程的已编译代码与源映射一起传递。这使我们避免每次重启JS脚本/应用程序时都加载babel及其所有dep。