NodeJS - nodemon 没有重新启动我的服务器
Posted
技术标签:
【中文标题】NodeJS - nodemon 没有重新启动我的服务器【英文标题】:NodeJS - nodemon not restarting my server 【发布时间】:2016-10-04 00:08:18 【问题描述】:我安装了 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 中进行一些更改时,它不会重新启动服务器
可能是什么问题?
【问题讨论】:
使用相同的版本和代码对我来说似乎工作正常。你确定你保存了文件? :) 是的,我一直在进行更改和保存,我能够重新启动服务器的唯一方法是输入“rs”,就像上面所说的那样 也许你在虚拟机中运行?我过去曾遇到过 github.com/remy/nodemon/issues/146 的问题 【参考方案1】:我在 nodemon 1.9.2 上遇到了同样的问题:nodemon 监视了 0 个文件
(尝试详细模式nodemon server.js -V
以获取更多信息)
经过一番研究,这个问题是由于我的根目录名称: 我的根目录被命名为“mysite.git”,因此 nodemon 正在观看 0 文件。我已经重命名了没有点的根目录,nodemon 现在可以按预期工作了。
从根目录中删除所有特殊字符,nodemon 应该可以正常工作。
【讨论】:
同时从您的项目路径目录中删除所有特殊字符。 我有./src/index.js
并且必须从一开始就删除 ./
以使其真正观看文件!【参考方案2】:
在某些网络环境中(例如运行 nodemon 的容器在已安装的驱动器上读取数据),您将需要使用 legacyWatch: true 来启用 Chokidar 的轮询。
通过 CLI,使用 --legacy-watch 或简称 -L:
nodemon -L
【讨论】:
这解决了我在 vagrant box 中运行服务器时的问题,源文件与主机共享。 这也解决了我在 vagrant box 中运行我的节点时的问题。谢谢 这解决了我在使用 WSL2 (Ubuntu18.04) 时遇到的问题。【参考方案3】:确保添加到脚本 -> 开始 --legacy-watch ./app
"scripts":
"start": "nodemon --legacy-watch ./app ./bin/www "
,
【讨论】:
【参考方案4】:我刚刚遇到了似乎相同的问题,我将更改我的代码并保存它们,但 nodemon 不会重新启动我的服务器。我可以更新的唯一方法是通过控制台中的“rs”。我在这里结束寻找解决方案,但后来决定重新安装 nodemon,因为没有很好的解释为什么它不起作用:
npm uninstall nodemon
npm install nodemon
重新安装后自动重启代码更改工作。
【讨论】:
【参考方案5】:像这样编辑 package.json 文件:
"scripts":
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon server.js",
,```
This may help you.
【讨论】:
你的想法是什么,我看不到任何帮助。【参考方案6】:您可以尝试像这样nodemon -L yourapp.js
运行,类似这样:
"scripts":
"start": "node index.js",
"dev": "nodemon -L index.js "
然后运行命令:
npm run dev
这对我有用!
【讨论】:
【参考方案7】:Nodemon 使用SIGUSR2
信号重新启动服务器,交叉检查您的服务器是否覆盖了此进程信号的功能。
就我而言,我使用的是 heapdump 模块,它正在重置此信号,因此我使用以下命令启动服务器:-
env NODE_HEAPDUMP_OPTIONS=nosignal nodemon app.js
这对我有用。
【讨论】:
【参考方案8】:我在 YouTube 上找到了解决方案。所以,解决办法是:
-
复制此路径:
C:\Windows\System32
-
进入“计算机/这台电脑”属性,然后进入“高级系统设置/系统设置”。
然后点击“环境变量”按钮。
然后双击用户变量部分的“路径”。
然后点击“新建”并粘贴此路径:
C:\Windows\System32
【讨论】:
只是,你能加个Youtube视频的链接吗? 我认为这无关紧要。用户没有说他在 Windows 上有问题。【参考方案9】:我遇到了同样的问题。我试过卸载nodemon,没有用。如果可行,您可以尝试全局卸载 nodemon。在我的情况下它不起作用,所以我所做的是我从系统中删除了所有节点模块。它们将位于 C:/users/user/AppData/Roaming/npm。我什至将node重新安装到我的系统中,然后安装了nodemon,然后它就可以工作了。
【讨论】:
这听起来像是一个不同的问题,而不仅仅是 nodemon lib 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review以上是关于NodeJS - nodemon 没有重新启动我的服务器的主要内容,如果未能解决你的问题,请参考以下文章
Nodemon:是不是可以仅在后端文件中而不是在静态前端文件中重新启动 Node js 服务器?