2013-08-26 88 views
0

當我刪除devDependencies數組時,trimArguments安裝正常。如果我給它一個dev-dependency,它似乎完全忽略trimArguments。沒有警告,只是沉默失敗。我的package.json如下:當devDependencies中有一個項目時,爲什麼npm不安裝依賴關係?

{"name":"asyncFuture", 
"version":"0.1.0", 
"main": "asyncFuture.js", 
"dependencies":[ 
    "git+https://[email protected]/fresheneesz/trimArguments.git#578afe0fa6ce96797c36e018bf5bae31b508a02f" 
], 
"devDependencies": [ 
    "git+https://[email protected]/fresheneesz/deadunit.git#8395e438492267b94ef51ee4f94a6d6c8f1c15da" 
], 
"repository": { 
    "type": "git", 
    "url": "git://github.com/fresheneesz/asyncFuture" 
} 
} 

這是一個NPM錯誤還是我誤解如何使用它?在Windows 7版本NPM 1.3.8 32位

UPDATE

它看起來像故宮是忽略任何包,除了最後一個,即使我把所有依賴性的「依賴」數組下(和擺脫devDependencies)。這必須是一個錯誤。我要出示一張票。

回答

4

當使用URLs as dependencies

您可以代替版本範圍的指定[...] URL。

注意到dependencies有:與包名稱版本範圍的簡單散列指定

即使使用(Git)URL,您仍然需要指定包名稱。

"dependencies": { 
    "trimArguments": "git+https://[email protected]/fresheneesz/trimArguments.git#578afe0fa6ce96797c36e018bf5bae31b508a02f" 
    }, 
    "devDependencies": { 
    "deadunit": "git+https://[email protected]/fresheneesz/deadunit.git#8395e438492267b94ef51ee4f94a6d6c8f1c15da" 
    } 
+0

如果我需要指定一個包名稱,那麼我希望它不能正確安裝其中的任何一個。它正確地安裝其中一個,而不是其他。但我會試試這個作爲解決方法。謝謝。 –

+0

這似乎工作:)) - 我仍然認爲它是一個錯誤在npm(我寫了一張票) –

2

dependenciesdevDependencies不是陣列;他們是地圖。

https://npmjs.org/doc/json.html#dependencies

+0

除了我一直在使用它們作爲所有其他項目的陣列,它們做工精細... –

+0

請出示一個已發佈NPM包,它成功地做到這一點。作爲npm維護者之一,這似乎不合理。 – Domenic

+0

npm安裝https://github.com/fresheneesz/examplePackage/tarball/16ef50a7861e776724458781d5dcd169976b4f8f - 你可以使用包或運行examplePackage/test/test.js –

相關問題