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
(在这种情况下不需要localhost
和3000
)。
事实上,你甚至可以不带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/ts-node-dev 在 dockerized 平均堆栈上工作
Nodemon 无法在 Docker 上使用 package.json 中的 npm 脚本
参考错误:当我尝试通过 nodemon myWebJs.js 运行时未定义 $ ...一切都在浏览器上正常工作..只是节点不工作