微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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 资源

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐