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 未被识别为内部或外部命令