簡體   English   中英

nodemon ''mocha' 不是內部或外部命令,也不是可運行的程序或批處理文件

[英]nodemon ''mocha' is not recognized as an internal or external command, operable program or batch file

使用 package.json 中的行在 Windows 10 上運行 nodejs 項目的測試

"test": "nodemon --exec 'mocha -R min'"

我得到:

>  nodemon --exec 'mocha -R min'  

[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `'mocha -R min'`
''mocha' is not recognized as an internal or external command,
operable program or batch file.
[nodemon] app crashed - waiting for file changes before starting...
rs
[nodemon] starting `'mocha -R min'`
''mocha' is not recognized as an internal or external command,
operable program or batch file.
[nodemon] app crashed - waiting for file changes before starting...

這條線很好用:

"test": "nodemon --exec \"mocha -R min\""

在 package.json 中

如果您使用的是 Windows 操作系統,請不要使用單引號

"test": "nodemon --exec 'mocha -R min'"

使用這個

"test": "nodemon --exec mocha -R min"

訪問:www.mycodingx.com 了解更多

全局安裝 mocha 然后它會工作

npm install -g mocha --save-dev

另外,如果您使用的是Windows並且正在使用git-bash ,請檢查您的NODE_ENV=development 出於某種原因,它默認為生產。

$ echo $NODE_ENV

使用 --production 標志(或當 NODE_ENV 環境變量設置為生產時),npm 將不會安裝“devDependencies”中列出的模塊

您可以通過檢查您的 node_modules/ 文件夾並查看是否安裝了 mocha 來驗證這一點。 如果不是:

$ npm install --only=dev

還:

$ NODE_ENV=development
$ npm i -D mocha

會做的伎倆。

我不是 Windows 內核或任何 .. 專家。 在我的情況下,測試腳本不斷出錯,並顯示消息npm 未被識別為內部或外部命令。

a) 當我擁有它時

"test": "mocha **/*.test.js",
"test-watch": "nodemon --exec 'npm test'"

它運行了幾次然后停止並且錯誤開始發生所以當我切換到

"test": "mocha **/*.test.js",
"test-watch": "nodemon --exec \"npm test\""

我仍然不斷收到相同的 npm 錯誤無法識別......而且無論我發出多少次 Ctrl c,nodemon 都不會停止。

我確實采取了重新啟動筆記本電腦、卸載並重新安裝 nodeJs、更新控制面板中的 PATH 變量 - 用戶帳戶 - 環境變量的步驟,所有這些都看不到盡頭。

這讓我相信在某個地方或以某種方式,nodemon 或 mocha 不確定,掛着什么,所以即使在我修改為轉義並使用雙引號之后

"test": "mocha **/*.test.js",
"test-watch": "nodemon --exec \"npm test\""

我仍然不斷收到同樣的錯誤。

b)然后我將密鑰的名稱從 test-watch 更改為 test-new

"test": "mocha **/*.test.js",
"test-new": "nodemon --exec \"npm test\""

並運行 npm run test-new 並且每個測試都運行良好。

去圖...

所以我想我會堅持在不同項目之間保持唯一的測試腳本名稱。 我沒有其他解釋......任何人都可以闡明這一點嗎? 請這樣做...

"test": "mocha **/*.test.js",
"test-watch": "nodemon --exec \"npm test\""

為運行

npm run test-watch

package.json ,您需要在"test"腳本之后添加一個新腳本。 我們可以創建一個自定義腳本並將其命名為"test-watch""test-watch"值為"nodemon --exec \\"npm test\\"" (即"test-watch": "nodemon --exec \\"npm test\\"" ) 在這一步之后,我們可以在終端中使用npm run test-watch命令。

另一種方法是將 mocha 路徑添加到環境變量中,然后重新啟動 bash 在您的編輯器上,導航到 mocha 的 bin 文件夾並將這兩個路徑添加到您的系統環境中。 已說明的所有腳本選項都適用於這種方法

"scripts": {
    "test": "nodemon --exec \"mocha -R min\""
}

"scripts": {
    "test": "nodemon --exec 'mocha -R min'"
}

"scripts": {
    "test": "nodemon --exec mocha -R min"
 }

在 package.json 文件中是正確的依賴項定義

我希望這有助於解決問題。

使用“npm run test”,命令應該是“nodemon --exec "mocha -R min"”。 對我來說,當使用上一個命令而不是 npm test & "nodemon --exec 'mocha -R min'" 時,它起作用了

為了執行 npm test 命令,使用 -g 命令全局安裝 mocha: npm install mocha -g我遇到了同樣的問題,並且在全局安裝 mocha 后工作。 如果您的項目中已准備好所有依賴項

暫無
暫無

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

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