[英]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.