加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

npm入手笔记0x005-v2和v3包依赖管理的不同

发布时间:2020-12-14 01:08:33 所属栏目:百科 来源:网络整理
导读:0x000 概述 本篇文章承接上文,记录的v2和v3版本在包管理方面的异同,基于阅读官方原文整理简化。 0x001 v2 管理方式 假设有模块 A 、 B 、 C , A 依赖 B1.0 , C 依赖 B2.0 ,我们可以得出以下依赖图: 接着我们创建一个 App ,同时依赖 A 和 C ,此时便会

0x000 概述

本篇文章承接上文,记录的v2和v3版本在包管理方面的异同,基于阅读官方原文整理简化。

0x001 v2管理方式

假设有模块ABCA依赖B1.0C依赖B2.0,我们可以得出以下依赖图:

接着我们创建一个App,同时依赖AC,此时便会出现依赖地狱

npm不使用单一的B版本包,而是让不同的B版本同时存在,只不过存在在各自的依赖包中,

看起来就像这样

0x002 v3管理方式

v3v2对于依赖管理的方式不太一样,v3希望让依赖扁平化。

假设我们有一个模块AA依赖B

创建一个项目依赖A

此时执行npm installnpm将会同时安装模块AB,并且扁平的放在项目的node_modules文件夹下

此时我们再依赖一个模块CC依赖B2.0

因为我们已经让B1.0扁平化了,所以我们没有办法让B2.0也扁平化,所以,这时候的B2.0使用和v2相同的处理方式。

此时的node_modules文件夹如下所示

0x003 v3包的复制和取消复制

假设我们有一个项目

  • A1.0

  • B1.0

  • C1.0依赖B2.0

添加依赖D依赖B2.0 ,此时:

添加依赖D依赖B1.0,此时

升级依赖A2.0依赖B2.0,此时

升级依赖E2.0依赖B2.0,此时

执行npm dedupe

查看node_modules文件夹:

0x004 资源

  • 项目github

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读