cnpm下载依赖包速度快的原理探究

我们经常会使用 cnpm 去下载依赖,是因为用 cnpm 下载依赖会比 npm 快。

那么,用 cnpm速度快的原因是什么呢❓

💪最近,我对cnpm速度快的原因进行了探究:

1、源

很大的一个原因是的指向不同–cnpm的源是中国镜像站。

官方解释:中国镜像站是一个完整 npmjs.org 镜像,同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

通俗来说:因为 npm 的远程服务器在国外,淘宝为我们搭建了一个国内的npm服务器 。我们下载依赖时,直接访问淘宝的国内服务器,速度就快了。

cnpm 支持 npm 除了 publish 之外的所有命令

另外 cnpm提供 了同步命令cnpm sync express

2、 我的探究

如果只是源的不同影响了速度,那么我将npm的源设置成淘宝源与用cnpm下载速度的应该是一样的。

npm config set registry https://registry.npm.taobao.org/
npm install

但是经过我的测试,并不是这样。用cnpm命令安装依赖始终比npm快💣

💡我观察发现,这两种方式安装依赖过程中已及下载后的node_modules文件夹是不一样的:

cnpm依赖安装中
在这里插入图片描述

npm依赖安装中

在这里插入图片描述

cnpm依赖安装完成

在这里插入图片描述

npm依赖安装完成

在这里插入图片描述

安装完成后,虽然cnpm安装的node_modules文件夹里面的多了一些_开头的文件,但是总的文件大小是一样的。

⭐于是我猜测包数量是一样的,只是存在一些npm包的软链接。

验证

然后,我修改了其中一个依赖包里面的代码,然后打开对应的_开头的依赖包,发现也同步发生了修改。反之亦然。我认为这足以验证我的猜想:cnpm安装的node_modules里面存在软链接。

⁉️ 另外,我还猜测cnpm速度快的原因还与解析依赖包之间依赖的算法有关。

⭐ 后来,我仔细看了官方文档,里面说明了支持gzip 压缩。这也是一个下载速度快的原因。

总结

cnpm安装依赖包速度比npm的原因有:

  1. 源:国内服务器
  2. gzip 压缩支持
  3. 解析依赖包之间依赖的算法(本人猜测)

欢迎评论交流

❤️ 更多前端知识欢迎关注公众号交流
❤️ 这里有你想知道的web前端知识

名称:你想知道的web前端

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值