Nodemon卡在“由于更改而重新启动......”并且不会重新启动服务器
Posted
技术标签:
【中文标题】Nodemon卡在“由于更改而重新启动......”并且不会重新启动服务器【英文标题】:Nodemon stuck at "restarting due to changes..." and won't restart the server 【发布时间】:2018-07-10 19:03:31 【问题描述】:我有一个非常基本的 nodemon 配置。我正在修复这个我继承的遗留节点 7 项目,并试图让开发过程有点痛苦。首先,正确的重启和转译过程(因为它是使用 ES6 模块语法构建的)。
这是我的文件夹结构:
- src
|- index.js
- dist
|- index.js
- index.js
- nodemon.js
我以 "start:dev": "nodemon index.js"
运行 nodemon
这是它的内容:
// index.js
if (process.env.NODE_ENV === 'production')
require('./dist/index.js');
else
require('babel-register')();
require('babel-polyfill');
require('./src/index.js');
这个想法是代码在运行时被转译,这样我就不必像以前那样手动停止服务器、重新转译、启动服务器。
最后但同样重要的是,nodemon 配置
// nodemon.js
"restartable": "rs",
"ignore": [
".git",
"node_modules/**/node_modules"
],
"verbose": true,
"watch": [
"src"
],
"env":
"NODE_ENV": "development"
,
"ext": "js json"
我从MERN 获取了这个设置,我认为它应该可以工作。但是,当我进行更改并保存时,它会:
[nodemon] files triggering change check: src/index.js
[nodemon] matched rule: /Users/me/project/path/src/**/*
[nodemon] changes after filters (before/after): 1/1
[nodemon] restarting due to changes...
[nodemon] src/index.js
(stuck here. it never restarts)
我一直在检查代码,我唯一不熟悉的可能是我能想到的导致它的原因是 child_process.execFileSync()
调用,它将调用一个 java 工具;和一个带有mysql.createPool()
(mysql
包)的连接池。
在 Node 7.5 和 Node 8.9 中都试过了。知道可能出了什么问题吗?
【问题讨论】:
这是一个漫长的过程,但你有没有找到解决这个问题的方法?我有同样的问题here。 【参考方案1】:确保 nodemon 在服务器启动时没有监视您正在写入的文件。您可以使用 --ignore
标志将 nodemon 设置为忽略该(那些)文件
例如
nodemon index.js --ignore 'something/*.json'
【讨论】:
【参考方案2】:对于那些仍然没有答案的人,我重新安装一个旧版本并且它可以工作
喜欢“npm i -g nodemon@1.19.0”
【讨论】:
【参考方案3】:以管理员身份打开cmd并写入nodemon [namefile.js]
【讨论】:
【参考方案4】:当我使用最新版本的 nodeJS 时,它不会工作。 但是当我改回10.15.0时,它就可以正常工作了。
【讨论】:
【参考方案5】:在Package.Json
文件中添加启动脚本为
"nodemon": "nodemon dev-server.js"
并将服务器启动为
npm run nodemon
【讨论】:
【参考方案6】:Supervisor 是 nodemon 的替代品。它对我有用
-
npm i 主管 -g
主管 app.js
【讨论】:
【参考方案7】:我使用的是 Windows 10,我遇到了同样的问题。我使用了主管而不是 nodemon,它开始对我正常工作。
运行以下命令:
npm install supervisor
并在 package.json 中的 scripts 键中添加以下代码行
"scripts": "start": "supervisor app.js"
【讨论】:
【参考方案8】:我使用的是 Windows 10,我遇到了同样的问题。我使用了主管而不是 nodemon,它运行良好。
运行以下命令:
npm install supervisor -g
supervisor src/index.js
【讨论】:
【参考方案9】:进入我电脑的属性,点击系统保护然后点击高级,然后点击环境变量。 有两种类型的变量。用户变量和系统变量。 在系统变量中单击路径,然后单击编辑,单击新建(添加三个变量) %SystemRoot%\system32; %系统根%; %SystemRoot%\System\Wbem 然后单击确定。重新运行你的 cmd 然后运行。它可以工作
【讨论】:
【参考方案10】:我以前解决过类似的问题。我做了以下事情,它确实对我有用。
npm start run:dev
nodemon npm start run:dev
首先我正常启动服务器,然后我使用nodemon。
【讨论】:
【参考方案11】:这对我有用;
删除这些目录; C:/Users/user/AppData/Roaming/npm
和 C:/Users/user/AppData/Roaming/npm-cache
并重新安装了全局 npm 模块。
纯粹!!
【讨论】:
【参考方案12】:Nodemon 现在被认为处于陈旧状态。因此,它的替代 npm 包管理程序可以通过 npm i supervisor -g 全局安装并用作 supervisor filename.js
【讨论】:
【参考方案13】:使用以下两个命令:
npm install supervisor -g
supervisor src/index.js
【讨论】:
补充说明node-supervisor
是什么以及为什么它可以解决这个问题会很有价值。【参考方案14】:
默认情况下,nodemon 会查找 .js 文件。 并且由于其他 extn 文件与您的 index.js 文件的链接,它无法重新启动。
node index.js -e js,hbs,html
您可以提及与您的 index.js 文件链接的所有扩展
希望它对你有用。 谢谢
【讨论】:
【参考方案15】:在环境变量中添加以下路径。它会解决你的问题。 %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\wbem;
【讨论】:
【参考方案16】:检查您是否将代码放置在没有写入权限的位置。 (尤其是放在桌面上的人) 如果没有,请将文件夹移动到其他有写权限的地方。 或者更改文件夹权限。
【讨论】:
【参考方案17】:我使用的是窗口 10,在意外删除了我的 %PATH% 变量后,我遇到了这个问题。如果是这种情况,请尝试添加这三个路径:
C:\Windows; C:\Windows\system32; C:\Windows\System32\Wbem;
【讨论】:
【参考方案18】:尝试执行
npm -g uninstall nodemon
然后
npm -g install nodemon
这为我解决了问题。
【讨论】:
【参考方案19】:类型:ps aux | grep 节点 或ps辅助| grep 端口(例如 3000)
并找到进程复制它的processId 然后输入终端 kill -KILL 进程ID
它会强制停止你的进程 比再次启动服务器
【讨论】:
以上是关于Nodemon卡在“由于更改而重新启动......”并且不会重新启动服务器的主要内容,如果未能解决你的问题,请参考以下文章
节点 Nodemon 错误:找不到模块 'C:\Program Files\Git\node_modules\nodemon\bin\nodemon.js'
Nodemon 没有重新加载。这个 nodemon.json 文件有啥问题
grunt-nodemon 没有使用 nodemon 来启动服务器
运行 Nodemon 时出现问题:“[nodemon] clean exit - waiting for changes before restart”