nodemon 无法正常工作

Posted

技术标签:

【中文标题】nodemon 无法正常工作【英文标题】:nodemon not working properly 【发布时间】:2014-07-18 14:18:22 【问题描述】:

我正在通过 npm start 运行我的 nodejs 应用程序

我刚刚安装了 nodemon sudo npm install -g nodemon 这样我就可以在保存对文件的更改时重新启动服务器。

但是当我尝试启动服务器时,像这样

nodemon ./app.js localhost 3000 or nodemon start localhost 3000

我得到这个作为输出

LM-SJC-00871929:webapp gdeep$ nodemon ./app.js localhost 3000
28 May 23:34:30 - [nodemon] v1.1.1
28 May 23:34:30 - [nodemon] to restart at any time, enter `rs`
28 May 23:34:30 - [nodemon] watching: *.*
28 May 23:34:30 - [nodemon] starting `node ./app.js localhost 3000`

但是当我去我的网页时,我得到了

Oops! Google Chrome could not connect to localhost:3000。我做错了什么?

App.js 在这里http://collabedit.com/t35dy

【问题讨论】:

您的问题可能与 nodemon 无关。发布app.js的内容 我刚刚添加了 app.js 作为问题的一部分。感谢您的帮助。 运气好吗?我有同样的问题,“开始”但不工作 【参考方案1】:
    npm i nodemon 编辑您的Package.json 文件:- 将开始设置为nodemon
"scripts": 
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon server.js"

    运行npm start尝试服务器

【讨论】:

【参考方案2】:

single quotation 用于多值参数,例如 `--exec'。

例如我将"nodemon --exec yarn build-langs" 更改为"nodemon --exec 'yarn build-langs'" 并工作。

【讨论】:

【参考方案3】:

与您的父进程相关的某些子进程可能不会关闭。尝试杀死所有子进程。

参考:https://github.com/remy/pstree

【讨论】:

【参考方案4】:

这是我为正确更新 nodemon 所做的:

nodemon index.js -L

-L 标志代表 legacyWatch,以下是官方文档的解释:

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

https://www.npmjs.com/package/nodemon#application-isnt-restarting

【讨论】:

像冠军一样工作!【参考方案5】:

试试

npm install --save-dev nodemon

然后 在 package.json file 保持这样

"scripts": 
    "start": "nodemon",
    "test": "echo \"Error: no test specified\" && exit 1"
  ,

而不是 npx nodemon,这需要更多时间

【讨论】:

还有其他答案和一个接受的答案提供了 OP 的问题,它们是前一段时间发布的。发布答案 see: How do I write a good answer? 时,请确保添加新的解决方案或更好的解释,尤其是在回答较老的问题时。【参考方案6】:

如果您使用的是 express4,最简单的方法是导航到 package.json 并更改 "scripts": "start": "node ./bin/www"

"scripts": "start": "nodemon ./bin/www"

【讨论】:

【参考方案7】:

就我而言,我必须全局安装 nodemon。使用此命令执行此操作..

npm install -g nodemon

如果您使用的是 Linux,您可能需要在命令前加上 sudo 关键字才能进行管理访问。

sudo npm install -g nodemon

【讨论】:

【参考方案8】:

谢谢 您需要在使用

进入文件夹应用程序后输入此内容

cd your_project_folder

sudo nodemon bin/www

【讨论】:

【参考方案9】:

在您的代码中添加以下代码

    app.js

    app.listen(3000, function()
        console.log("info",'Server is running at port : ' + 3000);
    );
    

    package.json

    nodemon app.js 
    

然后从命令行运行npm start

【讨论】:

【参考方案10】:

您可能还会遇到.nodemonignore 为空的问题。

【讨论】:

【参考方案11】:

对于 Express.js 4, 使用节点监视器 或 nodemon bin/www

【讨论】:

【参考方案12】:

对于 Express 4;跑吧

nodemon

目录上的命令(不带任何参数);这对我有用。

【讨论】:

【参考方案13】:

您正在运行 express 4,它的 app.listen 调用位于与 app.js 不同的文件中。您要查找的命令是nodemon bin/www(在这种情况下不需要localhost3000)。

事实上,你甚至可以不带args运行nodemon,它会从scripts.start中读取需要运行的命令package.json(express自动生成)。

【讨论】:

它有效。非常感谢。你能好心一点,解释一下那是怎么回事。我是nodejs的新手。如果您太忙而无法解释它的罚款,但任何指针或任何链接也会很棒。 如果您尝试仅使用 node 而不是 nodemon 运行 express 应用程序,您将收到相同的错误。从 express 4 开始,运行服务器的脚本实际上是在 bin/www 中(注意没有 .js 扩展名)。这个 www 文件读取你的 app.js config 并运行服务器。 另外值得补充的是,您可以只使用不带参数的 nodemon 运行基于 express 4 的应用程序,因为它会从 package.json 文件中变为红色并运行 scripts.start 选项。 哇,雷米夏普本人!我受宠若惊!我会将其添加到答案中。【参考方案14】:

尝试运行nodemon ./app.js 3000 or nodemon start 3000

【讨论】:

这并不能解决他的问题。 是的,它没有。 @SomeKittensUx2666,你也面临同样的问题吗?

以上是关于nodemon 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

如何使 nodemon 与 WSL 2 一起工作?

无法让 nodemon/ts-node-dev 在 dockerized 平均堆栈上工作

Nodemon 无法在 Docker 上使用 package.json 中的 npm 脚本

参考错误:当我尝试通过 nodemon myWebJs.js 运行时未定义 $ ...一切都在浏览器上正常工作..只是节点不工作

Nodemon:错误:监听 EADDRINUSE:地址已在使用 :::5000

Gulp Watch 和 Nodemon 冲突