Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
代码发生更改时自动启动Vagrant上的Node.js应用程序_Node.js_Vagrant_Nodemon - Fatal编程技术网

代码发生更改时自动启动Vagrant上的Node.js应用程序

代码发生更改时自动启动Vagrant上的Node.js应用程序,node.js,vagrant,nodemon,Node.js,Vagrant,Nodemon,我正在Vagrant box上运行Node.js应用程序,希望当主机上发生任何更改时,Node.js应用程序能够重新启动 但是我不能用。它不能及时捕捉到变化。当我使用-L标志时,它会消耗来宾计算机上太多的CPU。这些都是目前正在进行的 我也试过Vagrant's,但由于某些原因,它的反应不够灵敏 有解决办法吗?也许我可以在主机上应用一些东西?似乎可以在来宾机上尝试其他工具来替代nodemon,但是在主机上观察文件更改的速度最快 以下是一个对我有效的解决方法: 要点:在主机上使用一个监视程序,并向

我正在Vagrant box上运行Node.js应用程序,希望当主机上发生任何更改时,Node.js应用程序能够重新启动

但是我不能用。它不能及时捕捉到变化。当我使用
-L
标志时,它会消耗来宾计算机上太多的CPU。这些都是目前正在进行的

我也试过Vagrant's,但由于某些原因,它的反应不够灵敏


有解决办法吗?也许我可以在主机上应用一些东西?

似乎可以在来宾机上尝试其他工具来替代nodemon,但是在主机上观察文件更改的速度最快

以下是一个对我有效的解决方法:

要点:在主机上使用一个监视程序,并向来宾机发出SSH命令以重新启动应用程序

以下是一个配方(您可以使用任何其他您喜欢的工具):

首先,抓住:

并通过pm2启动Node.js应用程序:

pm2 app/server.js
然后抓取:

以及:

然后创建一个gulpfile.js:

var gulp = require('gulp');
var shell = require('gulp-shell');

gulp.task('server:watch', function () {
  gulp.watch('app/**/*.js', [ 'server:restart' ]);
});

gulp.task('server:restart', shell.task([ 'vagrant ssh -- pm2 restart server' ]));
你完了。要开始查看文件并在文件更改时自动启动服务器,请执行以下操作:

gulp server:watch

在我看来,Ates的回答提供了相当多的膨胀(pm2、气胀、气胀外壳和过度气胀?!)。
nodemon
的一个很好的替代方案是一个类似的库,名为。在nodemon的《流浪汉问题》(我想你大概浏览了一下)中也提到了这一点

基本用法:

node-dev --no-deps app.js

祝你一切顺利:)

聪明的把戏。一个小的补充是,这不仅仅局限于pm2。您可以使用另一个节点运行程序,如
forever
,只需更改在
shell.task
中运行的命令即可。
var gulp = require('gulp');
var shell = require('gulp-shell');

gulp.task('server:watch', function () {
  gulp.watch('app/**/*.js', [ 'server:restart' ]);
});

gulp.task('server:restart', shell.task([ 'vagrant ssh -- pm2 restart server' ]));
gulp server:watch
node-dev --no-deps app.js