资讯专栏INFORMATION COLUMN

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

ssshooter / 1020人阅读

摘要:概述本篇文章承接上文,记录的和版本在包管理方面的异同,基于阅读官方原文整理简化。此时的文件夹如下所示包的复制和取消复制假设我们有一个项目依赖添加依赖依赖,此时添加依赖依赖,此时升级依赖依赖,此时升级依赖依赖,此时执行查看文件夹资源项目

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88562.html

相关文章

  • npm入手笔记0x001-项目初始化增删改

    摘要:引用并执行如果安装出错,比如写错了包名,将会发生以下事情命令行报错使用可以自己新建一个文件编写也可以直接使用来初始化一个该命令是一个交互式命令,可以根据提示输入相应信息生成相应的,命令提示后面的中为提示内容,可以选择一路,然后再去修改。 0x001 概述 npm是一个包管理工具,本文章基本算是对官方文档的解读、翻译和实操笔记,顺便说明使用npm中的坑。 0x002 安装Node.js ...

    Baoyuan 评论0 收藏0
  • npm入手笔记0x002-发布自己Node.js模块及其版本管理

    摘要:概述本篇文章承接上文,记录的是如何发布自己的模块编写模块新建项目并初始化编写模块代码发布模块测试模块命名空间每个人都可以发布自己的包,难免会有包名相同的情况,如果想要使 0x001 概述 本篇文章承接上文,记录的是如何发布自己的Node.js模块 0x002 编写模块 新建项目并初始化 $ mkdir 0x005-publish-own-module $ cd 0x005-publis...

    mrli2016 评论0 收藏0
  • npm入手笔记0x003-一些常见问题记录

    摘要:如何选择就如果上面所有,需要打包进生产环境就保存到,只是在开发或者打包的时候使用的就保存到即可。提示不能发布当前版本解决方案不能发布已经发布的版本,修改一下版本号就可以了想不到了,想到了再写资源项目 0x001 概述 本篇文章承接上文,记录的是一些使用过程中的疑惑 0x001 墙的原因使得包下载太慢 解决方案:使用淘宝cnpm,推荐使用cnpm,因为如果修改npm仓库,将会导致无法发布...

    luffyZh 评论0 收藏0
  • npm入手笔记0x004-npm命令及配置文件说明(未完善)

    摘要:概述本篇文章承接上文,记录的的配置和命令的详细说明。的配置说明项目名称,的时候就是使用这个。案例说明版本号,符合的版本规范的版本号,默认从开始。 0x000 概述 本篇文章承接上文,记录的package.json的配置和npm命令的详细说明。 0x001 package.json的配置 name: 说明:项目名称,npm install的时候就是使用这个name。 案例:loda...

    mzlogin 评论0 收藏0
  • 入手thinkjs,学习笔记

    摘要:最近刚刚学习了一个的开发框架,最重要的是可以用开发传送门以下是学习过程中的笔记上面时全局安装完成后用检查是否成功创建了一个名为的项目,然后进入目录,安装依赖,启动项目,浏览器打开就可以看到页面了。 最近刚刚学习了thinkjs--一个node的MVC开发框架,最重要的是可以用es6/es7开发【传送门】 以下是学习过程中的笔记: npm install thinkjs@2 -g --v...

    shuibo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<