簡體   English   中英

Nodemon卡在“由於更改而重新啟動......”並且不會重新啟動服務器

[英]Nodemon stuck at "restarting due to changes..." and won't restart the server

我有一個非常基本的 nodemon 配置。 我正在修復這個我繼承的遺留節點 7 項目,並試圖讓開發過程有點痛苦。 首先,正確的重啟和轉譯過程(因為它是使用 ES6 模塊語法構建的)。

這是我的文件夾結構:

- src
  |- index.js
- dist
  |- index.js
- index.js
- nodemon.js

我運行 nodemon 作為"start:dev": "nodemon index.js"

這是它的內容:

// 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 中都試過了。 知道可能出了什么問題嗎?

我正在使用窗口 10,並且在我不小心刪除了 %PATH% 變量后遇到了這個問題。 如果是這種情況,請嘗試添加這三個路徑:

C:\\Windows; C:\\Windows\\system32; C:\\Windows\\System32\\Wbem;

對於那些仍然沒有答案的人,我重新安裝一個舊版本並且它可以工作

像“npm i -g nodemon@1.19.0”

嘗試執行

npm -g uninstall nodemon

然后

npm -g install nodemon

那為我修好了。

在環境變量中添加以下路徑。 它會解決你的問題。 %SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\wbem;

使用以下兩個命令:

npm install supervisor -g
supervisor src/index.js

我之前解決了一個類似的問題。 我做了以下事情,它確實對我有用。

  1. npm start run:dev

  2. nodemon npm start run:dev

首先我正常啟動服務器,然后我使用nodemon。

我使用的是 Windows 10,我遇到了同樣的問題。 我使用了主管而不是 nodemon,它運行良好。

運行以下命令:

npm install supervisor -g

supervisor src/index.js

我使用的是 Windows 10,我遇到了同樣的問題。 我使用了主管而不是 nodemon,它開始對我正常工作。

運行以下命令:

npm install supervisor

並在 package.json 在腳本鍵中添加以下代碼行

"scripts": {"start": "supervisor app.js"}

類型:ps 輔助 | grep 節點或 ps aux | grep 端口(例如 3000)

並找到進程復制其processId然后鍵入終端kill -KILL processId

它會強制停止您的進程而不是再次啟動服務器

檢查您是否在沒有寫許可的情況下將代碼放置在某個位置。 (尤其是放在桌面上的人)如果沒有,請將文件夾移動到具有寫入權限的其他地方。 或者更改文件夾權限。

默認情況下,nodemon 查找 .js 文件。 並且由於其他 extn 文件與您的 index.js 文件的鏈接,它無法重新啟動。

節點 index.js -e js,hbs,html

您可以提及與您的 index.js 文件鏈接的所有擴展名

希望對你有效。 謝謝

Nodemon 現在被認為是過時的情況。所以它的替代 npm 包主管可以通過全局安裝並用作

轉到我的計算機的屬性,單擊系統保護,然后單擊高級,然后單擊環境變量。 有兩種類型的變量。 用戶變量和系統變量。 在系統變量中點擊路徑然后點擊編輯,點擊新建(添加三個變量)%SystemRoot%\\system32; %SystemRoot%; %SystemRoot%\\System\\Wbem 然后點擊 ok .Rerun your cmd 然后運行 ​​.it works

Supervisior 是 nodemon 的替代方案。 它對我有用

  1. npm i 主管 -g
  2. 主管 app.js

Package.Json文件中添加啟動腳本為

"nodemon": "nodemon dev-server.js"

並啟動服務器

npm run nodemon

當我使用最新版本的 nodeJS 時,它不起作用。 但是當我改回 10.15.0 時,它可以正常工作。

確保 nodemon 在服務器啟動時沒有監視您正在寫入的文件。 您可以使用--ignore標志將 nodemon 設置為忽略該(那些)文件

例如

nodemon index.js --ignore 'something/*.json'

windows 10 的 2022 年更新

Go 到這台電腦 -> 屬性 -> 高級系統設置 -> 環境變量 -> 用戶變量。

雙擊“路徑”並創建“新建”。 然后添加這個路徑

C:\Windows\System32

注意:確保關閉並重新啟動終端。

這對我有用;

刪除這些目錄; C:/Users/{user}/AppData/Roaming/npmC:/Users/{user}/AppData/Roaming/npm-cache並重新安裝全局 npm 模塊。

純粹!!

以管理員身份打開cmd,寫入nodemon [namefile.js]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM