为什么运行npm test会导致:'.' 不被识别为内部或外部命令,可操作程序或批处理文件.

Caf*_*ten 3 windows bash mocha.js npm mingw-w64

我安装了以下内容:

  • Windows 10
  • Git bash(mingw64)
  • Node.js v8.7.0
  • npm版本5.4.2

包:

  • 柴4.4.1
  • 摩卡3.5.0

我有一个示例mocha测试,它将在实际运行时始终通过.

我在shell中运行的命令:

npm test
Run Code Online (Sandbox Code Playgroud)

输出:

./node_modules/mocha/bin/_mocha

'' 不被识别为内部或外部命令,可操作程序或批处理文件.错误的ERR!测试失败.请参阅上文了解更多详情.

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

./node_modules/mocha/bin/_mocha
Run Code Online (Sandbox Code Playgroud)

结果如何

样品测试

√通过!

1次传球(4ms)

我猜这与在windows中使用类似bash的shell的怪异有关,但是我不知道如何从这里解决这个问题.

为什么会出现这种错误,是否有办法让'npm test'正常工作而不必使用这个Windows编程环境?

感谢和问候

Caf*_*ten 11

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

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

"test" : "./node_modules/mocha/bin/_mocha"
Run Code Online (Sandbox Code Playgroud)

将此更改为:

"test" : "node ./node_modules/mocha/bin/_mocha"
Run Code Online (Sandbox Code Playgroud)

这样做我可以运行npm test命令.

我仍然不确定为什么原始值不起作用,因为运行它作为shell中的命令工作得很好.

如果有人看到这一点,并希望提供一些非常感激的见解.