2015-12-08 31 views
1

我是nodejs的新手。我發現在我的本地項目中安裝了三個模塊(express,jade,gulp)後,node_modules文件夾中有很多未知模塊。在node_modulesnode_modules文件夾中的許多未知模塊

未知模塊的例子:

  • 變化
  • 狀態
  • 發送
  • 承諾

從我從別人看教程,他們安裝一飲而盡後,有將只是其node_modules文件夾中的一個「吞噬」文件夾,但這不是我的情況。爲什麼?謝謝。

回答

1

最近更新了節點包管理器(npm),作爲該更新的一部分,所有模塊都安裝在頂層node_modules文件夾中。這包括您的依賴關係需要安裝的模塊。在過去,這些模塊將嵌套在express(例如)中的另一個node_modules文件夾內。

這就是爲什麼您閱讀的教程有所不同,可能它們是在此更新之前編寫的。

它在故宮的changelog here

你的依賴將現在可以安裝最大平坦提及。只要是 可能,所有的依賴關係,以及它們的依賴關係,和他們 依賴也將被安裝在您的項目node_modules沒有嵌套文件夾 。你只看到彼此相套 下面模塊時,兩個(或更多)模塊有依賴性衝突。

#3697這將有希望消除大多數Windows用戶最終遇到的瀏覽器和其他標準 工具需要處理的路徑太長的情況。

#6912(#4761#4037)這也意味着您的安裝將從一開始就被刪除。

#5827這個重複甚至延伸到git deps。

#6936(#5698)現在已知道各種命令可以清除重複數據。這對其他命令的行爲有一些影響:

npm uninstall刪除模塊的任何依賴關係,您指定的模塊不需要其他模塊。以前,它 只會刪除那些碰巧安裝在它下面的, ,如果你曾經被刪除過,會導致遺留下來。 npm ls現在顯示 您的依賴關係樹圍繞什麼需要什麼組織,而不是那些模塊在磁盤上的位置。

#6937 npm重複數據刪除現在除了可以重複數據刪除之外還可以使樹變平。在打包或發佈更改時還捆綁依賴關係:

#2442 bundledDependencies不再需要您指定重複子副本。npm現在可以看到捆綁的東西 需要依賴項,並自動包含它。換句話說, bundledDependencies應該只包含您在 依賴項,optionalDependencies或devDependencies中包含的內容。

#5437綁定依賴項時,它既是devDependency也是常規依賴項的子項,npm捆綁子依賴項。作爲 演示我們對自己工作的信心,npm自己的 依賴關係現在被扁平化,被刪除並捆綁在npm @ 3 樣式中。這意味着npm @ 3不能被npm @ 2, 打包或發佈,如果您正在使用npm進行攻擊,則需要注意這一點。

+0

謝謝。直接和有益的答案! –

相關問題