持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
前言
yarn已经是日常开发过程中高频使用的开发工具,为什么yarn使用频率为何变得如此高频呢?在npm已经相对成熟的情况下,yarn生态为何又如此活跃呢?
接下来,我们就来聊一下yarn的安装机制和背后思想,看看yarn到底有何独到之处?
揭开yarn的神秘面纱
yarn 常用命令
安装项目中的全部依赖:yarn install
安装某个具体的依赖:yarn add xxx
安装全局依赖:yarn add xxx global
移除某个依赖:yarn remove xxx
切换源:yarn config set registry
清除依赖缓存:yarn cache clean
发布依赖:yarn publish
通过这几个常见的命令,可以看出来,yarn的开发团队用心良苦啊。相对于npm来说,变动不大,所以使用过npm的小伙伴来说,分分钟钟就可以上手使用了。
如果还有小伙伴没有使用过yarn的话,可以体验一下yarn,领略一下yarn的风情,或许你会沉迷于yarn呢。
yarn的优势
优势一:速度与性能
相较于npm来说,yarn install的安装速度更快。
光说不练假把式,下面我们就针对同一个项目试验,首先先把npm和yarn的源都切换到taobao源(registry.npmmirror.com) ,然后依次删除依赖和lock文件,并分别执行 npm install 和 yarn install 命令。
在尽可能的排除干扰因素之后,我们来看一下执行结果:
npm install 耗时 74.451s,yarn install 耗时 37.09s。
通过上述结果,我们可以看出来,yarn的安装速度可以粗略的理解为npm的两倍。
为什么会这样呢?yarn安装依赖到底有什么玄机呢?
细心的小伙伴在使用yarn install安装依赖的时候,可能会注意到这个一个画面(家里网速比较快,截了好几次都没有截好安装中的图片,后续补上):
其实,yarn进行安装依赖是并行的,也就是说yarn同时进行多个依赖的安装,而npm安装依赖会等待上一个依赖安装完成才会安装下一个依赖。
优势二:安全性
在npm5之前,npm存在安全性问题,这也是yarn主要解决的问题。npm安装的依赖容易被安全注入和依赖污染,导致使用有问题的依赖的项目被攻击或利用。
当然,npm5之后也加强了对安全性的管理。
在使用npm进行依赖安装的时候,会给开发者提示依赖是否存在安全漏洞,也支持开发者中通过使用 npm audit 检查是否存在依赖是否存在安全漏洞。如果发现安全漏洞的话,会提醒开发者并给出安全建议。
npm也使用了跟yarn相同的哈希加密算法来保证包的完整性。
结尾
好了,有关yarn的问题我们就先聊到这里了,后续我们会跟深入的聊一下yarn和npm安装依赖的差异性。如果大家对pnpm感兴趣的话,我们也可以围绕pnpm展开聊一聊。欢迎jym在下方进行留言交流。