博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
npm入手笔记0x005-v2和v3包依赖管理的不同
阅读量:6965 次
发布时间:2019-06-27

本文共 569 字,大约阅读时间需要 1 分钟。

0x000 概述

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

0x001 v2管理方式

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

deps1.png

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

deps2.png

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

deps4.png

看起来就像这样

tree.png

0x002 v3管理方式

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

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

npm3deps1.png

创建一个项目依赖A

npm3deps1.png

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

npm3deps2.png

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

npm3deps3.png

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

npm3deps4.png

此时的node_modules文件夹如下所示

tree.png

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

假设我们有一个项目

  • A1.0

  • B1.0

  • C1.0依赖B2.0

    appsofar.png

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

npm3deps6.png

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

npm3deps8.png

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

npm3deps10.png

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

npm3deps12.png

执行npm dedupe

npm3deps13.png

查看node_modules文件夹:

tree5.png

0x004 资源

转载地址:http://rlwsl.baihongyu.com/

你可能感兴趣的文章
Android应用及应用管理
查看>>
开发第一个Hibernate项目,实现插入数据功能
查看>>
Xcode8 missing file 报出 ”xx“is missing from working copy 的问题 解决方法汇总
查看>>
rhsl 6.5 搭建DNS服务器
查看>>
推荐最适合IT人自学的6个视频网站、8个社区网站,欢迎补充
查看>>
idea配置tomcat
查看>>
自定义Iptables日志输出
查看>>
Http Cite
查看>>
grep精确匹配(存在. -的情况)
查看>>
鼠标滑在标题上显示图片的JS代码
查看>>
View Horizon Mirage安装手册(一)——Horizon Mirage介绍
查看>>
Mac OSX 正确地同时安装Python 2.7 和Python3
查看>>
python 爬虫之BeautifulSoup 库的基本使用
查看>>
Linux 文件查找命令详解
查看>>
MySQL中权限管理
查看>>
JavaEE 请求响应
查看>>
如何解决数据文件传输的风险?
查看>>
Hyper-v集群高可用性配置
查看>>
查看域名解析是否生效的方法
查看>>
javax.crypto.spec.SecretKeySpec
查看>>