[英]Why is Grunt installing so many folders in node_modules?
我很長一段時間以來第一次使用咕嚕聲,我的預感是我錯了。 當我運行npm install grunt --save-dev
,我的npm_modules文件夾中裝載了許多文件夾(准確地說是87)。 我的期望,以及我在觀看教程時看到的是,應該添加一個名為grunt的文件夾。 類似地,當我嘗試添加uglify插件( npm install grunt-contrib-uglify --save-dev
)時,我會在node_modules中添加額外的31個文件夾。 我記得剛剛獲得一個帶有插件名稱的文件夾。 我正在使用:
npm版本3.9.3
grunt版本1.0.1
OSX Yosemite 10.10.5
的package.json
{
"name": "myapp",
"version": "1.0.0",
"description": "the description",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Me",
"license": "MIT",
"devDependencies": {
"grunt": "^1.0.1",
"grunt-contrib-uglify": "^1.0.1"
}
}
任何幫助是極大的贊賞。 謝謝。
您正在使用NPM版本3來平坦依賴項 。 您已安裝的模塊的依賴關系也可以安裝在node_modules文件夾下。 您可以將此與Bower處理瞬態依賴關系的方式進行比較。
來自文檔:
當npm2以嵌套方式安裝所有依賴項時,npm3會嘗試緩解此類嵌套導致的深層樹和冗余。 npm3通過以平面方式安裝一些輔助依賴項(依賴項的依賴項)來嘗試此操作,與需要它的主要依賴項位於同一目錄中。
因此預期這種行為,你沒有做錯任何事。
如果您仍在運行NPM版本2,您可能已經注意到它顯示有關此依賴項解析更改的警告消息:
karma-phantomjs-launcher中包含的對等依賴關系phantomjs-prebuilt @> = 1.9將不再自動安裝以在npm 3+中實現peerDependency。 您的應用程序需要明確依賴它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.