![](/img/trans.png)
[英]'nodemon' is not recognized as an internal or external command, operable program or batch file
[英]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"
全局安裝 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.