yarn为啥那么快?

363 阅读3分钟

在前端项目开发中,为了避免重复造轮子,通常都会用到前端组件库npm, 而在项目中的node_model包管理工具通常会用npm、cnpm、yarn、cyarn.

常用包管理工具具体的介绍

npm

全称 Node Package Manager npm是Node.js官方推荐的包管理工具,拥有庞大的包生态系统,几乎所有的Node.js包都可以在npm上找到。 npm在安装依赖时速度较慢,尤其是在网络环境不好的情况下。

cnpm

全称 China Node Package Manager

cnpm是npm的镜像,使用淘宝的镜像源,可以加快包的下载速度。

通过cnpm安装包的速度比npm快,特别是在国内网络环境下。

但由于cnpm是镜像,有时可能会存在与npm原始包不一致的情况,可能会导致一些问题。

yarn

全称 Yet Another Resource Negotiator(资源协调者)

yarn是由Facebook开发的包管理工具,速度快,安装依赖包的速度比npm快很多。

yarn会生成一个yarn.lock文件,确保每次安装依赖时使用相同的版本,避免了版本不一致的问题。

yarn支持离线安装,可以在没有网络连接的情况下安装依赖。

cyarn

(淘宝镜像的yarn):

cyarn是yarn的镜像,使用淘宝的镜像源,可以加快包的下载速度。

通过cyarn安装包的速度比yarn快,特别是在国内网络环境下。

npm为啥不好用?

网络问题:由于npm下载包时依赖网络,网络不稳定或者速度慢时容易导致安装失败或报错。

依赖冲突:npm的依赖解析算法相对较复杂,有时候会出现依赖冲突的情况,导致安装失败或者报错。

包管理不严谨:有些开发者在开发包时可能没有严格指定依赖的版本,导致安装时版本不匹配而报错。

缓存问题:npm的缓存机制相对不够完善,有时会出现缓存不一致导致安装失败的情况。

版本管理:有时候npm升级后可能会出现与之前版本不兼容的情况,导致安装失败或报错。

Yarn为什么那么快

并行安装:Yarn支持并行安装依赖包,相比npm的串行安装,可以显著提高安装速度。

缓存机制:Yarn会将下载的包缓存到本地,再次需要相同的包时可以直接使用缓存,避免重复下载,提高安装速度。

版本锁定:Yarn使用yarn.lock文件来锁定依赖的版本,避免了不同安装环境下依赖版本不一致的问题,也减少了网络请求和安装时间。

离线安装:Yarn支持离线安装,当没有网络连接时,可以使用本地缓存来安装依赖,这对于一些特殊情况下非常有用。

简化的依赖解析算法:Yarn使用了一种更高效的依赖解析算法,减少了解析依赖时的时间消耗。