NPM - 安装子依赖会不会增加软件包捆绑包的大小?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NPM - 安装子依赖会不会增加软件包捆绑包的大小?相关的知识,希望对你有一定的参考价值。
我有一个React应用。(虽然就这个问题而言,技术并不重要)
其中一个依赖关系是 material-ui
库的依赖关系。
的依赖性。material-ui
图书馆是 react-transition-group
库。
这是否意味着我可以 "npm安装 "这个 react-transition-group
而完全不增加我的JS bundle的大小?
答案
这将取决于 react-transition-group
npm会尽力只安装一个模块的单一版本。现代的捆绑器(WebpackRollup)也会尽量在捆绑器里面使用单一版本。
那么它什么时候会使用单例,什么时候会得到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 ls
运转后 npm install
它将显示你在项目中安装的所有包和版本。
以上是关于NPM - 安装子依赖会不会增加软件包捆绑包的大小?的主要内容,如果未能解决你的问题,请参考以下文章