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 服务器?

所以我想在崩溃时重新启动nodejs服务器

是否可以在前端更改时运行 nodemon 以重新启动服务器?

nodemon 无法正常工作

Node 工具 nodemon 详解

NodeJs学习-基础-nodemon