[英]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.