【问题标题】:NPM - Does installing a sub-dependency increase the size of your package bundle?NPM - 安装子依赖项会增加包的大小吗?
【发布时间】:2020-04-22 16:59:17
【问题描述】:

我有一个 React 应用程序。 (尽管就这个问题而言,技术并不重要)

其中一个依赖项是material-ui 库。

material-ui 库的依赖项是 react-transition-group 库。

这是否意味着我可以“npm install”react-transition-group 库而不增加我的 JS 包的大小?

【问题讨论】:

    标签: npm package.json


    【解决方案1】:

    这取决于所使用的react-transition-group 的版本。 npm 最好只安装一个模块的一个版本。现代捆绑器(Webpack/Rollup)也将尝试在捆绑包中使用单个版本。

    那么它什么时候会使用单个实例,什么时候会得到 2 个副本?

    版本范围重叠:

    material-ui 需要版本~1.1.0

    您的package.json 需要版本^1.0.0

    由于这些范围重叠,npm 可以安装与 1.1.* 匹配的任何版本,并且它适用于两个模块,并且您只会获得 1 个副本。

    版本范围不重叠:

    material-ui 需要版本~1.1.0

    您的package.json 需要版本^2.0.0

    由于这些范围需要不同的 SemVer 主要版本,npm 将安装两个副本,一个来满足每个要求。捆绑器还需要同时引入这两个版本。

    很难准确判断子依赖项中存在什么版本,但是您可以在运行npm install 后运行npm ls 来查看它们,它将显示项目中安装的所有包和版本。

    【讨论】:

      猜你喜欢
      • 2017-09-30
      • 2016-03-23
      • 2016-03-14
      • 2017-04-14
      • 2014-02-17
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多