【问题标题】:Nodemon stuck at "restarting due to changes..." and won't restart the serverNodemon卡在“由于更改而重新启动......”并且不会重新启动服务器
【发布时间】: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

标签: node.js nodemon


【解决方案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 的替代品。它对我有用

            1. npm i 主管 -g
            2. 主管 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】:

                    我以前解决过类似的问题。我做了以下事情,它确实对我有用。

                    1. npm start run:dev

                    2. nodemon npm start run:dev

                    首先我正常启动服务器,然后我使用nodemon。

                    【讨论】:

                      【解决方案11】:

                      这对我有用;

                      删除这些目录; C:/Users/{user}/AppData/Roaming/npmC:/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

                                    它会强制停止你的进程 比再次启动服务器

                                    【讨论】:

                                      猜你喜欢
                                      • 2019-03-23
                                      • 2020-08-21
                                      • 2020-07-16
                                      • 2021-10-02
                                      • 2020-07-11
                                      • 2021-11-05
                                      • 2022-11-24
                                      • 2020-06-15
                                      相关资源
                                      最近更新 更多