似乎本地服务器以“heroku local web”开头,不会监视文件更改并重新启动。我该怎么做呢?
似乎本地服务器以“heroku local web”开头,不会监视文件更改并重新启动。我该怎么做呢?
最简单的方法是运行nodemon heroku local
作为可执行文件 - 即 nodemon --exec "heroku local"
。
然而, heroku local
使用默认的nodemon关闭信号(SIGUSR2)的非零退出代码退出,因此您需要向nodemon添加一个额外的标志,以将中断信号设置为SIGTERM。
nodemon --exec "heroku local" --signal SIGTERM
(用heroku-cli@6.14.31-33a2d0a测试,nodemon @ 1.12.1,node @ 8.5.5)
最简单的方法是运行nodemon heroku local
作为可执行文件 - 即 nodemon --exec "heroku local"
。
然而, heroku local
使用默认的nodemon关闭信号(SIGUSR2)的非零退出代码退出,因此您需要向nodemon添加一个额外的标志,以将中断信号设置为SIGTERM。
nodemon --exec "heroku local" --signal SIGTERM
(用heroku-cli@6.14.31-33a2d0a测试,nodemon @ 1.12.1,node @ 8.5.5)
heroku local
只是使用 node-foreman
(https://www.npmjs.com/package/heroku-local),因此更容易直接用于观看。
首先,安装 foreman
和 nodemon
:
npm i --save-dev foreman nodemon
现在,您需要在您的脚本中设置两个脚本 package.json
:
{
...
"scripts": {
"start": "nf start",
"watch": "nodemon --watch directory-to-watch"
},
...
}
您现在可以在监视该目录时运行该应用程序并重新加载更改
npm run watch
我觉得 heroku local
将 watch
用于更改静态资源(客户端代码)。但是,使用您对Web服务器(服务器端代码)所做的每个源代码更改手动重启服务器显然并不理想。
如果您正在创建NodeJS应用程序,我的建议是尝试使用 watch
Gulp提供的命令。但是,这也要求您(a)安装Gulp,(b)编写Gulp脚本。同样,此解决方案仅适用于NodeJS,如果,则不需要这些步骤 heroku local
看着你的文件。
安装 吞
npm install gulp --save-dev
添加Gulp脚本(Procfile所在的位置)
注意:未能获得以下内容 watch
代码可以成功运行,但它可以为其他人提供一个模板来创建一个可行的解决方案。
var gulp = require('gulp');
var exec = require('child_process').exec;
gulp.task('heroku-local', function () {
exec("heroku local");
});
gulp.task('heroku-local:watch', function () {
gulp.watch([
'file-to-watch',
'folder-to-watch/**/*'
], ['heroku-local']);
});
运行Gulp脚本(从Procfile所在的目录)
gulp heroku-local:watch