运行npm install –save-dev不仅安装依赖项,还安装其他一些文件夹

我在我的项目中使用了npm install --save-dev gulp来安装gulp,但是不仅安装了gulp,还安装了一堆其他文件夹。 我已经结束了超过100个节点模块。 我怎样才能避免这种情况,只安装我想要为我的项目安装的模块?

如果你看看gulp包里的package.json ,你会看到gulp所有依赖:

  "dependencies": { "archy": "^1.0.0", "chalk": "^1.0.0", "deprecated": "^0.0.1", "gulp-util": "^3.0.0", "interpret": "^1.0.0", "liftoff": "^2.1.0", "minimist": "^1.1.0", "orchestrator": "^0.3.0", "pretty-hrtime": "^1.0.0", "semver": "^4.1.0", "tildify": "^1.0.0", "v8flags": "^2.0.2", "vinyl-fs": "^0.3.0" } 

当安装一个包时, npm也会recursion地安装该包的依赖关系和依赖关系的依赖关系。 看看这里 :

对于这个包{dep}结构:A {B,C},B {C},C {D},这个algorithm产生:

一个
+ – B
+ – C
+ – D

所以A是你的大包包,这取决于BB取决于C也安装。

你可以使用use npm install --production来避免为你的软件包安装dev依赖项。 您的插件所依赖的软件包的开发依赖不会被安装。 从这里 :

模块目录中的一个正常的npm安装应该为您提供当前模块的所有(dependencies + devDependencies),而不需要安装所有子模块的devDependencies。