npm install安装不属于package.json的依赖

我首先创建了一个package.json文件,内容为

{
  "name": "9.1work",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack-dev-server --open",
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "css-loader": "^0.28.7",
    "file-loader": "^0.11.2",
    "style-loader": "^0.18.2",
    "vue-loader": "^13.0.4",
    "vue-template-compiler": "^2.4.2",
    "webpack": "^3.5.5",
    "webpack-dev-server": "^2.7.1"
  },
  "dependencies": {
    "vue": "^2.4.2"
  }
}

之后npm install 得到 node_module文件夹,里面有我所需的依赖还有大量无关的内容,类似这样的,一共496个文件夹

clipboard.png
我想知道为什么,我可不可以只安装我所需的依赖。

阅读 5.3k
5 个回答

因为你安装的依赖项目也有其依赖项目。
在npm早期时候,是每个依赖项目里面通过node_modules去加载其依赖项,这样看上去你的node_modules文件夹内就会十分干净,但是这样存在更多的问题。其一是他们的公共依赖会下载多次,不能共用;其二是太深的文件目录结构会导致各方面问题。
所以npm3.0之后就将依赖树平铺了。

你所需要的依赖也同样需要其他的依赖啊,所以说不能。

多出来的依赖是写在你依赖的模块文件夹的package.json的依赖

因为你安装的东西也需要其他依赖。

你安装了你想要的包 你想要的包有他自己心里面想要的包 你想要的包他心里想要的包心里也有它本身想要的包。。。如此叠加 一个项目下来结构就复杂了 不过在你生产环境打包的时候不会有这么多的 所以放心就好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题