NodeJS - nodemon没有重启我的服务器

Bri*_*Cas 7 javascript node.js npm nodemon

我安装了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');
Run Code Online (Sandbox Code Playgroud)

所以,当我在我的控制台"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
Run Code Online (Sandbox Code Playgroud)

(这意味着运行正常)

但是当我在server.js中进行一些更改时,它不会重新启动服务器

可能是什么问题?

小智 22

在某些联网环境中(例如运行nodemon读取已安装驱动器的容器),您需要使用legacyWatch:true来启用Chokidar的轮询.

通过CLI,使用--legacy-watch或简称-L:

nodemon -L

  • 这是在一个与主机共享源文件的流浪盒中运行服务器时解决了我的问题. (3认同)
  • 这解决了我使用 WSL2 (Ubuntu18.04) 时的问题。 (2认同)

Mao*_*Mao 8

我在nodemon 1.9.2上遇到了同样的问题:nodemon监视了0个文件

(尝试详细模式nodemon server.js -V以获取更多信息)

经过一番研究,这个问题是由于我的根目录名称:我的根目录名为"mysite.git",因此nodemon正在观看0文件.我没有点重命名我的根目录,nodemon现在按预期工作.

从根目录中删除所有特殊字符,nodemon应按预期工作.


小智 8

你可以尝试像这样运行nodemon -L yourapp.js,类似这样:

"scripts": {
    "start": "node index.js",
    "dev": "nodemon -L index.js "
 }
Run Code Online (Sandbox Code Playgroud)

并运行命令:

npm run dev
Run Code Online (Sandbox Code Playgroud)

这对我有用!