nodemon ''mocha' 不是内部或外部命令、可运行程序或批处理文件

Posted

技术标签:

【中文标题】nodemon \'\'mocha\' 不是内部或外部命令、可运行程序或批处理文件【英文标题】:nodemon ''mocha' is not recognized as an internal or external command, operable program or batch filenodemon ''mocha' 不是内部或外部命令、可运行程序或批处理文件 【发布时间】:2017-10-28 09:04:41 【问题描述】:

在 Windows 10 上为 nodejs 项目运行 test package.json 中的行为:

"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...

【问题讨论】:

【参考方案1】:

为了执行 npm test 命令,使用 -g 全局安装 mocha

命令:npm install mocha -g

在全球安装 mocha 后,我遇到了同样的问题并开始工作。 只要您在项目中准备好所有依赖项

【讨论】:

【参考方案2】:

使用“npm run test”,命令应该是“nodemon --exec "mocha -R min"”。对我来说,当使用上一个命令而不是 npm test & "nodemon --exec 'mocha -R min'" 时它起作用了

【讨论】:

【参考方案3】:

全局安装 mocha 然后它就可以工作了

npm install -g mocha --save-dev

【讨论】:

【参考方案4】:

我不是 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 运行测试新 并且每个测试都运行良好。

去看看……

所以我想我会坚持在不同的项目之间保持唯一的测试脚本名称。我没有其他解释....任何人都可以阐明这一点吗?请这样做...

【讨论】:

【参考方案5】:

另一种方法是将 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 文件中是正确的依赖定义

我希望这有助于解决问题。

【讨论】:

【参考方案6】:

如果您使用的是 windows 操作系统,请不要使用单引号

“测试”:“nodemon --exec 'mocha -R min'”

使用这个

“测试”:“nodemon --exec mocha -R min”

Visit: www.mycodingx.com for more

【讨论】:

【参考方案7】:

package.json 中,您需要在"test" 脚本之后添加一个新脚本。我们可以创建一个自定义脚本并将其命名为"test-watch""test-watch"的值为"nodemon --exec \"npm test\""(即"test-watch": "nodemon --exec \"npm test\"")在这一步之后我们可以在终端中使用npm run test-watch命令。

【讨论】:

【参考方案8】:

此外,如果您在 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

会成功的。

【讨论】:

哇,我正在与一家拒绝给我使用 MacOS 的公司合作,所以你的解决方案很有帮助。【参考方案9】:
"test": "mocha **/*.test.js",
"test-watch": "nodemon --exec \"npm test\""

为了跑步

npm run test-watch

【讨论】:

它与问题有什么关系?【参考方案10】:

这行很好用:

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

在 package.json 中

【讨论】:

谢谢..为什么第一种语法只对某些人有效? 这是一个仅限 Windows 的问题

以上是关于nodemon ''mocha' 不是内部或外部命令、可运行程序或批处理文件的主要内容,如果未能解决你的问题,请参考以下文章

修复:“nodemon”不被识别为内部或外部命令、可运行程序或批处理文件

[NODEMON]- babel-node 未被识别为内部或外部命令

解决“export NODE_ENV=test”不是外部或内部命令

运行 mocha 测试后如何杀死 nodemon 进程?

nodejs之包教不包会

json-server 成功安装没有报错,但执行json-server -h 却说不是内部啥外部命