2013-05-27 108 views
6

我是新來Node.js的世界,我是問我怎麼可以處理依賴版本conflics(這往往與傳遞依賴時出現):在互聯網上只發現了這篇文章有用,我http://nodejs.org/api/modules.html#modules_addenda_package_manager_tips依賴版本上node.js的衝突

這樣看來,我不擔心,因爲包是如何在node.js中管理衝突我錯了嗎,我錯過了什麼?這似乎很奇怪(但對我來說仍然有意義),我習慣於用maven處理依賴關係,設置不必下載的傳遞依賴關係。

任何幫助表示讚賞,謝謝。

回答

6

npm和節點require系統會自動照顧這對你。例如,你的程序可以依靠dep1dep2dep1可能需要1.0 subdep版和dep2可能需要subdep 2.0版本,並NPM將安裝多個版本,所以每個模塊獲得所需的依賴版本。

your-module/ 
    node_modules/ 
     dep1/ 
      node_modules/ 
       subdep/ (1.0) 
     dep2/ 
      node_modules/ 
       sudbep/ (2.0) 
+2

太好了,謝謝你:我主要是在尋找官方的參考資料,然後再次確認我是對的。在您的鏈接之後,我發現有趣的部分「爲什麼npm不能像其他軟件包管理器那樣把所有東西都放在一個地方?」它依次指向https://npmjs.org/doc/folders.html。特別是在文件夾文檔中,我在「循環,衝突和文件夾簡約」部分的「示例」部分找到了答案。 – reallynice

+0

有沒有辦法禁止這種行爲?所以如果有衝突。使用最低號碼 – Daniel

+1

不,沒有。因爲這很可能會在運行時崩潰。如果DEPA需要[email protected]和DEPB需要安裝只是[email protected] [email protected]和NPM,DEPA將嘗試使用新的API 2.0.0,這將不存在,並且該計劃將與崩潰例外。 –