【问题标题】:Why npm installs so much modules with this package.json?为什么 npm 会用这个 package.json 安装这么多模块?
【发布时间】:2015-10-09 03:14:07
【问题描述】:

我最近将 npm 更新到了 3.3.3 版本,并在此之后开始了一个新项目。我的 package.json 如下:

{
  "name": "my project",
  "description": "my description",
  "version": "1.0.0",
  "license": "MIT",
  "devDependencies": {
    "gulp": "^3.8.11",
    "gulp-uglify": "^1.4.1",
    "gulp-watch": "^4.1.1",
    "gulp-rename": "^1.2.2",
    "gulp-concat": "^2.5.2",
    "gulp-autoprefixer": "^2.1.0",
    "gulp-sass": "^1.3.3",
    "browser-sync": "^2.7.13"
  }
}

在执行npm install 之后,我在 node_modules 目录中看到了 352 个已安装的模块。在更新 npm 之前,我只为另一个项目安装了 10-15 个使用非常相似的 package.json(还有一些额外的依赖项)的模块。

所以你的问题是,为什么新版本的 npm 安装了这么多模块,我能以某种方式改变它的行为吗?

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    这是npm@3 的核心功能之一:您的依赖项的所有依赖项现在都安装在同一个顶级node_modules 目录中,如果可能的话。

    来自the changelog

    您的依赖项现在将最大限度地安装。在可能的情况下,您的所有依赖项及其依赖项以及它们的依赖项都将安装在您项目的 node_modules 文件夹中,没有嵌套。只有当两个(或更多)模块具有冲突的依赖关系时,您才会看到相互嵌套的模块。

    这有望消除大多数情况,即 Windows 用户最终遇到的路径太长,Explorer 和其他标准工具无法处理。

    没有办法禁用它。

    【讨论】:

    • 谢谢@eush77,我明白了。
    猜你喜欢
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 2020-05-20
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    相关资源
    最近更新 更多