Yarn和npm我为什么选前者

2020-04-21 15:05:31 浏览数 (1)

不论做什么,包管理工具总是必须。因为要满足不同的需求,所以每一个方向都会出现多个不同的管理工具。比如做iOS的Cocoapods,SwiftPackage,Carthage, 安卓的Maven,Gradle。都会陷入包管理工具大战,最近在学Vue,又开始出现选择题,到底JS包管理工具是用npm还是用yarn呢?

作为一个对JS不资深的人,为什么选择yarn,抛弃npm。很明显。yarn是在npm的基础上进行改进的,弥补了速度,缓存,安全等方面的不足之处。

Yarn比NPM的优势


  • 加入了缓存机制,离线安装,速度更快
  • 加入算法校验包完整性,更安全
  • 使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作,更可靠。

Yarn比NPM 指令对比


npm (v5)

Yarn

npm install

yarn install

(N/A)

yarn install --flat

(N/A)

yarn install --har

npm install --no-package-lock

yarn install --no-lockfile

(N/A)

yarn install --pure-lockfile

npm install [package] --save

yarn add [package]

npm install [package] --save-dev

yarn add [package] --dev

(N/A)

yarn add [package] --peer

npm install [package] --save-optional

yarn add [package] --optional

npm install [package] --save-exact

yarn add [package] --exact

(N/A)

yarn add [package] --tilde

npm install [package] --global

yarn global add [package]

npm update --global

yarn global upgrade

npm rebuild

yarn add --force

npm uninstall [package]

yarn remove [package]

npm cache clean

yarn cache clean [package]

rm -rf node_modules && npm install

yarn upgrade

npm version major

yarn version --major

npm version minor

yarn version --minor

npm version patch

yarn version --patch

从上面的指令可以看出,Yarn 基本覆盖npm,又新增一些功能。

总结


既然Yarn是npm的扩展集,又能解决npm每次安装依赖网络的龟速行为,为什么不拥抱Yarn呢?

从以往iOS和安卓开发经验,依赖第三方库缓存机制的重要性,所以还在用npm的小伙伴们,珍惜时间拥抱Yarn吧。

0 人点赞