我一直认为npm test命令只是启动我将在package.json中在scripts: { test: ...}部分中编写的内容。但当它不起作用的时候我有个奇怪的窃听器。
所以,我在package.json中有一个配置
"scripts": {
"start": "node index.js",
"test": "mocha tests/spec.js"
}当我尝试运行测试时,我在终端中键入npm test,并出现了以下错误:
module.js:340
throw err;
^
Error: Cannot find module 'commander'但是,当我只输入mocha tests/spec.js时,一切都没问题。有什么好主意吗?
更新:
我试图安装指挥官,我有一个错误,找不到模块'glob'。在安装glob之后
错误:找不到模块'../'**
但问题实际上是,为什么我会有这些错误,为什么在运行mocha tests/spec.js时一切正常?
发布于 2015-02-23 03:25:36
您可能安装了两个版本的摩卡:一个是全局的(npm install -g mocha),另一个是本地的,似乎已经坏了。
当您在npm中以npm run-script <name>的形式或使用定义的快捷方式(如npm test或npm start )运行脚本时,当前包目录的bin目录位于路径的前面。对于您的包,可能是./node_modules/.bin/,它包含指向包的mocha可执行脚本的链接。
您可能可以通过删除本地mocha并使用--save-dev重新安装它来修复这个问题:
rm -rf node_modules/mocha
npm install --save-dev mocha这应该会给你一个工作的本地副本的摩卡及其所有依赖(指挥官等)。已安装。
https://stackoverflow.com/questions/20164398
复制相似问题