为什么运行npm test会出现以下错误:'.'不被识别为内部或外部命令,可执行程序或批处理文件。

4
我已安装以下内容:
  • Windows 10
  • Git Bash (mingw64)
  • Node.js v8.7.0
  • npm 版本为 5.4.2

包:

  • chai 4.4.1
  • mocha 3.5.0

我有一个简单的 mocha 测试,当实际运行时总是通过。

我在 shell 中运行的命令:

npm test

输出:

./node_modules/mocha/bin/_mocha

'.' 不是内部或外部命令,也不是可运行的程序或批处理文件。 npm ERR!测试失败。有关更多详细信息,请参见上文。

出于某种原因,我可以直接运行此命令:

./node_modules/mocha/bin/_mocha

这导致

样例测试

√ 通过!

1个通过(4毫秒)

我猜这与在Windows内部使用类似于bash的shell有关,但我不确定如何从这里进行故障排除。

为什么会出现此错误,是否有一种方法可以使“npm test”正常工作而无需放弃使用此Windows编程环境?

谢谢 & 祝好

1个回答

16

这可能不是一个完美的答案,但它以足以继续开发的方式修复了问题:

在我的 package.json 文件中,我有:

"test" : "./node_modules/mocha/bin/_mocha"

将其更改为:

"test" : "node ./node_modules/mocha/bin/_mocha"

修改后我可以正常运行npm test命令。

我仍然不确定为什么原始值无法正常工作,因为在shell中作为命令运行是完全没有问题的。

如果有人看到这个并想提供一些见解,那将不胜感激。


1
今天突然遇到了同样的问题,但找到了相同的解决方法 :) 在我看来,由于某种原因,node没有用于运行脚本。 - iaforek
1
按照当前的文档,我在package.json中使用了"test": "mocha"作为入口,并且没有出现问题。但是,在CMD.EXE中作为命令(调用mocha.cmd)时,它无法工作,因为%APPDATA%\npm文件夹未添加到路径中。 - Mike C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接