就這一點而言,摩卡在devDependencies(如教程)中所說的足夠符合邏輯,畢竟它是dev的依賴關係。爲什麼摩卡需要在devDependencies中?
但實際上你安裝它-g所以你可以運行摩卡作爲一個命令。就我所知,鑑於這一點,它在package.json中提到的沒有任何區別。
那麼有沒有必要明確列出它?
就這一點而言,摩卡在devDependencies(如教程)中所說的足夠符合邏輯,畢竟它是dev的依賴關係。爲什麼摩卡需要在devDependencies中?
但實際上你安裝它-g所以你可以運行摩卡作爲一個命令。就我所知,鑑於這一點,它在package.json中提到的沒有任何區別。
那麼有沒有必要明確列出它?
如果您正在開發一個開源項目,您的目標之一可能是讓其他開發人員能夠快速開始貢獻。
對於新開發人員來說,快速構建和運行項目以及運行測試的可能性之一是很大的幫助。爲了做到這一點,您可以提供一種安裝開發人員爲了爲項目做出貢獻的所有工具的簡單方法。
這包括:
在另一方面,你的項目的用戶可能不會去需要任何這些,這是一個很好的理由分裂dependencies
和devDependencies
。
最重要的是,它是非常有用的編輯package.json
提供有用的scripts
這樣就可以,例如,運行npm test
。這是常見的指定是這樣的:
{
...
"scripts": {
...
"test": "mocha -opts mocha.opts ...tests..."
}
}
然後npm test
將會從您的node_modules
運行特定mocha
。
該死,打我吧 – slebetman
如果您在全球範圍內安裝,那麼這是所有項目中的單一版本。
如果是開發依賴項,則每個項目都可以使用特定於該項目的版本,並且該項目可以以受控方式遷移到新版本。
與其他模塊加載項目特定而不是全局加載相同的論點。
可能有助於說明,對於本地依賴項,您需要每次都使用相對路徑運行摩卡,而不是在使用全局配置時使用「mocha」。 –
@ ssc-hrep3:當然,儘管現在人們總是傾向於使用npm腳本和其他任務運行者...... :-) –
因爲您不需要運行摩卡作爲命令。您可以像node_modules
那樣運行它:./node_modules/.bin/mocha
。
Npm對此有特別的支持。如果你在的package.json如下:
"scripts": {
"test": "mocha"
},
"devDependencies": {
"mocha": "*"
}
則可以執行npm test
即使你沒有摩卡全球的裝機量也。
那麼,這有什麼用?首先,如果與其他開發人員協作,這是一件很好的事情 - 他們不需要做任何超過npm install
的設置開發環境。
其次,我認爲更有用,這是很容易將項目與其他工具一樣Travis等
當然,使用Travis等工具是很好的,因爲他們每運行一次測試時間你推動你的回購變化,但對我個人而言,我只是想在Github上擁有那些奇特的構建徽章:D – slebetman
你可以叫摩卡可執行從節點模塊,或以編程方式與摩卡的配置工作,也鎖定整合版本 – Gntem