代码更改时在 Vagrant 上自动启动 Node.js 应用程序
Auto-starting Node.js application on Vagrant when there are changes to code
我是 运行 Vagrant box 上的 Node.js 应用程序,希望 Node.js 应用程序在主机发生任何变化时重新启动。
但是我无法使用nodemon. It doesn't pick up the changes in time. When I use the -L
flag, it consumes too much CPU on the guest machine. These are currently well-known issues。
我也尝试过 Vagrant 的 rsync-auto,但由于某些原因它的响应不够快。
有解决办法吗?也许我可以在主机上应用一些东西?
您可以在来宾计算机上试用其他工具作为 nodemon 的替代品,但在主机上监视文件更改是最快的。
这是对我有用的解决方法:
要点:在主机上使用观察程序并向来宾计算机发出 SSH 命令以重新启动应用程序。
这是一个食谱(您可以使用您喜欢的任何其他工具):
首先,抢pm2:
npm install -g pm2
并通过 pm2 启动您的 Node.js 应用程序:
pm2 app/server.js
然后抢 Gulp:
npm install -g gulp-cli
npm install --save-dev gulp
npm install --save-dev gulp-shell
然后创建一个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、Gulp、gulp-shell 和过多的 gulp 文件?!)。 nodemon
的一个很好的替代品是一个名为 node-dev 的类似库。在 nodemon 的 Vagrant 问题下也提到了它(我想你已经浏览过了)。
基本用法:
node-dev --no-deps app.js
祝一切顺利:)
我是 运行 Vagrant box 上的 Node.js 应用程序,希望 Node.js 应用程序在主机发生任何变化时重新启动。
但是我无法使用nodemon. It doesn't pick up the changes in time. When I use the -L
flag, it consumes too much CPU on the guest machine. These are currently well-known issues。
我也尝试过 Vagrant 的 rsync-auto,但由于某些原因它的响应不够快。
有解决办法吗?也许我可以在主机上应用一些东西?
您可以在来宾计算机上试用其他工具作为 nodemon 的替代品,但在主机上监视文件更改是最快的。
这是对我有用的解决方法:
要点:在主机上使用观察程序并向来宾计算机发出 SSH 命令以重新启动应用程序。
这是一个食谱(您可以使用您喜欢的任何其他工具):
首先,抢pm2:
npm install -g pm2
并通过 pm2 启动您的 Node.js 应用程序:
pm2 app/server.js
然后抢 Gulp:
npm install -g gulp-cli
npm install --save-dev gulp
npm install --save-dev gulp-shell
然后创建一个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、Gulp、gulp-shell 和过多的 gulp 文件?!)。 nodemon
的一个很好的替代品是一个名为 node-dev 的类似库。在 nodemon 的 Vagrant 问题下也提到了它(我想你已经浏览过了)。
基本用法:
node-dev --no-deps app.js
祝一切顺利:)