yarn和npm的对比

12,419 阅读3分钟

这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战

前言

之前我是用的npm,后来公司主管推荐了一个另外的包管理工具,叫yarn,当我使用了之后,我发现,对比npm来说,yarn确实好用。 下面我总结一下它们常用的指令,以及它们的区别。

安装

yarn的安装和npm的安装都要依赖node,首先要去官网下载node , 安装好在cmd中可以输入命令node -v, 打印出node的版本就安装成功了。

node中是集成了npm的,所以安装了node,npm也一起安装了。

image.png

对于yarn,有2种方式

第一种,你可以去这个地址下载安装包

image.png

第二种,你可以选择通过npm install -g yarn安装

第二种方式,如果执行全局命令提示command not found,则要把yarn的可执行目录(也就是bin目录)添加到系统变量,然后重启cmd再执行。

指令对比

下面针对一些常用的指令进行对比:

描述yarnnpm
初始化package.jsonyarn init (可以在后面添加-y跳过询问的信息)npm init (可以在后面添加-y跳过询问的信息)
根据package.json安装依赖yarn install(可以省略install)npm install(install可以缩写成i)
安装某个依赖(默认是在dependencies)yarn add packageName --save(简写-S,或者省略该参数)npm install packageName --save(简写-S,或者省略该参数)
安装某个依赖在devDependenciesyarn add packageName --dev(可以简写成-Dnpm install packageName --save-dev(可以简写成-D
全局安装依赖yarn global add packageNamenpm install packageName -g
移除依赖yarn remove packageNamenpm uninstall packageName
移除全局依赖yarn global remove packageNamenpm uninstall packageName -g
升级依赖yarn upgrade packageName(如果是全局的依赖则在yarn后面加上globalnpm update packageName(如果是全局的依赖则在后面加上-g
查看依赖的信息yarn info packageNamenpm info packageName
查看所有配置npm config listnpm config list 或者 npm config ls -l
查看某个配置的信息yarn config get configNamenpm config get configName
设置淘宝源yarn config set registry https://registry.npm.taobao.orgnpm config set registry https://registry.npm.taobao.org
查看当前源yarn config get registrynpm config get registry
罗列全局依赖yarn global list --depth=0npm list -g --depth 0
查看全局依赖目录yarn global bin 或者yarn global dirnpm prefix -g
查看全局缓存的目录yarn cache dirnpm config get cache

区别

  1. yarn安装速度快,因为它是异步执行安装依赖;npm是同步执行,它需要先安装好前面的包再接着安装。
  2. yarn安装过程信息很干净,npm会罗列很多其它包的信息,看过去感觉不直观。
  3. yarn安装后是有个yarn.lock文件,这个文件是会锁定你安装的版本,别人安装时会直接读取yarn.lock文件,这样可以保证安装的依赖的版本是一样的,npm在5.x.x的版本也引入了这个机制,它的文件叫package-lock.json。

总结

以上就是我总结的yarn和npm的对比,大家可以自行选择,我是推荐yarn的,哈哈哈。

感谢你们的阅读。