我们经常会使用 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的原因有:
- 源:国内服务器
- gzip 压缩支持
- 解析依赖包之间依赖的算法(本人猜测)
欢迎评论交流
❤️ 更多前端知识欢迎关注公众号交流
❤️ 这里有你想知道的web前端知识
名称:你想知道的web前端
256

被折叠的 条评论
为什么被折叠?



