[英]How does “npm” run “npm test”?
我一直认为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
时,一切都mocha tests/spec.js
。 任何想法为什么会这样?
更新:
我试图安装指挥官,我有一个错误找不到模块'glob' 。 安装完成后glob
我有
错误:找不到模块'../'**
但实际问题是为什么我有这些错误,为什么运行mocha tests/spec.js
时一切正常?
您可能安装了两个版本的mocha:一个是全局的( npm install -g mocha
),另一个是本地的,看起来很糟糕。
当您通过npm
运行脚本时,无论是npm run-script <name>
还是使用npm test
或npm start
等已定义的快捷方式,您当前的包目录的bin
目录都会放在路径的前面。 对于你的包可能是./node_modules/.bin/
,它包含你的包的mocha
可执行脚本的链接。
您可以通过删除本地摩卡并使用--save-dev重新安装它来解决此问题:
rm -rf node_modules/mocha
npm install --save-dev mocha
这应该会让你获得一个工作的mocha本地副本及其所有依赖项(指挥官等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.