nodemon''mocha'未被识别为内部或外部命令,可操作程序或批处理文件

时间:2017-05-27 16:12:39

标签: node.js mocha nodemon

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

9 个答案:

答案 0 :(得分:27)

这条线很好用:

"test": "nodemon --exec \"mocha -R min\""
package.json中的

答案 1 :(得分:4)

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

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

使用此

  

“测试”:“ nodemon --exec摩卡-R分钟”

Visit: www.mycodingx.com for more

答案 2 :(得分:1)

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

去看看...

因此,我想我将坚持在不同项目之间保持唯一的测试脚本名称。我没有其他解释。。。。请这样做...

答案 3 :(得分:0)

另外,如果您使用 Windows 并使用 git-bash ,请检查 NODE_ENV =开发。出于某种原因,它默认为生产。

$ echo $NODE_ENV

使用--production标志(或当NODE_ENV环境变量设置为production时),npm将不会安装“devDependencies”中列出的模块

您可以通过检查node_modules /文件夹来验证这一点,看看是否安装了mocha。如果不是:

$ npm install --only=dev

还:

$ NODE_ENV=development
$ npm i -D mocha

会做到这一点。

答案 4 :(得分:0)

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

运行

npm run test-watch

答案 5 :(得分:0)

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

答案 6 :(得分:0)

另一种方法是将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文件中的

是正确的依赖项定义

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

答案 7 :(得分:0)

在全球范围内安装摩卡,然后它将工作

npm install -g mocha --save-dev

答案 8 :(得分:0)

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