2016-01-04 34 views
2

我一直在使用ember一段時間,當我想安裝項目的節點依賴關係時,我只需要使用npm install創建具有所有依賴關係的文件夾node_modules(因爲它是描述於http://ember-cli.com/user-guide/)。npm install生成比需要更多的文件夾

由於我使用的是舊版本的node我unisntalled nodenpm並安裝nvm與版本node v5.0.0npm v3.3.6但現在,當我嘗試使用npm install爲我所用之前做安裝項目的依賴,而不是package.json文件的依賴關係,我從很多東西中得到了很多更多信息,我不確定它們來自哪裏(我認爲它們是npm本身以全局方式處理的依賴關係,但現在它將它們添加到本地項目中,但我不確定)。

爲什麼我得到所有這些未知的(對我來說)依賴關係?

請注意,當我運行ember new它會在node_modules中生成正確的依賴關係,但如果我刪除此文件夾並運行npm install發生的情況是相同的。

+0

的可能的複製[NPM安裝的計算機之間表現不同(http://stackoverflow.com/questions/33601989/npm-install-behaving-differently-between-computers) – Bek

回答

3

這是由NPM V3.0引入的變化之一:

你的依賴將現在可以安裝平板 - 默認。如果 可能,則所有依賴項及其依賴項以及它們的 依賴項都將安裝在項目的node_modules文件夾 中,而不進行嵌套。只有當兩個或多個模塊具有衝突的依賴關係時,嵌套纔會發生。

更多詳情http://www.felixrieseberg.com/npm-v3-is-out-and-its-a-really-big-deal-for-windows/

+0

謝謝!我在想我的節點和npm的安裝有問題。是不是可以在全球範圍內使用它們,而不是在本地,所以在項目中將是與'package.json'相關的? –

+1

您可以在'node_modules'子文件夾中看到的軟件包仍然是您在'package.json'中指定的本地依賴項,唯一的區別是現在您的依賴項的依賴項也在該文件夾中,而在它們總是嵌套之前在每個依賴文件夾:) –