我安装了NodeJS(4.4.5),然后继续安装nodemon(1.9.2), 我遵循所有安装说明(npm install -g nodemon)
我创建了一个新文件夹,我的 server.js 包含一些基本代码:
var http = require('http');
http.createServer(function (request, response){
response.writeHead( 200, {'Content-Type': 'text/plain'} );
response.write("Hello world");
response.end();
}).listen(3000, 'localhost');
console.log('http://localhost:3000');
所以当我在我的控制台“nodemon server.js”中运行时,我得到了这个:
[nodemon] 1.9.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node server.js`
http://localhost:3000
(这意味着运行正常)
但是当我在server.js中进行一些更改时,它不会重启服务器
可能是什么问题?
答案 0 :(得分:15)
在某些网络环境中(例如运行nodemon读取已安装驱动器的容器),您需要使用legacyWatch:true来启用Chokidar的轮询。
通过CLI,使用--legacy-watch或简称-L:
nodemon -L
答案 1 :(得分:7)
我在nodemon 1.9.2上遇到了同样的问题:nodemon正在监视0个文件
(尝试详细模式nodemon server.js -V
以获取更多信息)
经过一番研究,这个问题是由于我的根目录名称: 我的根目录名为“mysite.git”,因此nodemon正在观看0文件。我没有点重命名我的根目录,nodemon现在按预期工作。
从根目录中删除所有特殊字符,nodemon应按预期工作。
答案 2 :(得分:2)
你可以尝试像这样nodemon -L yourapp.js
那样跑步:
"scripts": {
"start": "node index.js",
"dev": "nodemon -L index.js "
}
并运行命令:
npm run dev
这对我有用!
答案 3 :(得分:1)
像这样编辑package.json文件:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon",
},```
This may help you.
答案 4 :(得分:0)
确定要添加到脚本中->开始--legacy-watch ./app
"scripts": {
"start": "nodemon --legacy-watch ./app ./bin/www "
},
答案 5 :(得分:0)
我只是遇到了似乎相同的问题,我将对代码进行更改并保存它们,但是nodemon不会重新启动服务器。我可以更新的唯一方法是通过控制台中的“ rs”。我在这里结束时正在寻找解决方案,但后来决定重新安装nodemon,因为没有很好的解释为什么它不起作用:
npm uninstall nodemon
npm install nodemon
重新安装后,自动重新启动代码更改成功。
答案 6 :(得分:0)
Nodemon 使用 SIGUSR2
信号重新启动服务器,交叉检查您的服务器是否覆盖了此进程信号的功能。
就我而言,我使用的是 heapdump 模块,它正在重置此信号,因此我使用以下命令启动服务器:-
env NODE_HEAPDUMP_OPTIONS=nosignal nodemon app.js
这对我有用。