簡體   English   中英

“npm”如何運行“npm test”?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM