簡介
在 JavaScript 社區(qū)中展箱,工程師們互相分享成千上萬的代碼羊赵,幫助我們節(jié)省大量編寫基礎(chǔ)組件舷蒲、類庫或框架的時(shí)間耸袜。每個(gè)代碼包可能都依賴于其他代碼,而代碼間的依賴關(guān)系則由包管理器負(fù)責(zé)維護(hù)牲平。目前最流行的 JavaScript 包管理器是 npm
客戶端堤框,在 npm
倉庫中提供了多達(dá) 30 萬的軟件包。據(jù)統(tǒng)計(jì)纵柿,已有超過 500 萬的工程師使用 npm
倉庫蜈抓,其軟件包下載量達(dá)到了 50 億次/月。
在 Facebook 中昂儒,我們多年來一直在使用 npm
客戶端并取得了成功沟使,但隨著代碼倉庫與團(tuán)隊(duì)人數(shù)的增長,我們在一致性渊跋、安全性以及性能方面遇到了挑戰(zhàn)腊嗡。在嘗試解決每個(gè)方面的問題后着倾,我們最終決定著手打造一套新的客戶端解決方案,以幫助我們更可靠地管理依賴燕少。我們把這個(gè)客戶端工具稱為Yarn
—— 更加快速卡者、可靠、安全的 npm
客戶端的替代品棺亭。
與 Exponent虎眨、 Google 和 Tilde 進(jìn)行了合作,并開源 Yarn
項(xiàng)目镶摘。工程師在使用 Yarn
時(shí)嗽桩,依然需要訪問 npm
倉庫,但 Yarn
能夠更快速地安裝軟件包和管理依賴關(guān)系凄敢,并且可以在跨機(jī)器或者無網(wǎng)絡(luò)的安全環(huán)境中保持代碼的一致性碌冶。Yarn
提高了開發(fā)效率,并解決了共享代碼時(shí)面臨的一些問題涝缝,使得工程師們可以專注在構(gòu)建新產(chǎn)品以及新特性上扑庞。
特性
本地緩存
類似 Gradle,Yarn 會(huì)把使用過的模塊在本地緩存一份拒逮,如果下次還要用到相同版本的模塊罐氨,那么將會(huì)直接使用本地的而不是訪問網(wǎng)絡(luò)重新獲取一份。
這個(gè)特性碾壓 NPM 了啊有木有滩援!我之前使用 NPM 的時(shí)候一直想吐槽這個(gè)來著栅隐,如果全局安裝項(xiàng)目就會(huì)依賴環(huán)境,如果不全局安裝那么每個(gè)項(xiàng)目都要重新下載一次包玩徊,浪費(fèi)時(shí)間和資源租悄。
安全性
安裝之前會(huì)驗(yàn)證文件完整性,所以不用擔(dān)心安裝到損壞的文件啦
可靠
Facebook 都把它用在生產(chǎn)環(huán)境中了恩袱,Google 也要參與維護(hù)了泣棋,Github 上那么多的 star,絕壁可靠了吧
更優(yōu)雅的命令
命令相比起 NPM 更容易理解畔塔,默認(rèn)的設(shè)置足夠貼心潭辈,感覺要起飛了
使用
說了這么多也心動(dòng)了,那么我們就開始安裝 Yarn 吧澈吨。
安裝
筆者使用的是 Mac把敢,所以只會(huì)介紹 Mac 的安裝方法,其它方式請參照 Installation Guide
Mac 上有三種安裝方式棚辽,推薦使用 Homebrew 安裝技竟。
Homebrew安裝
輸入以下命令即可
brew update
brew install yarn
如果使用 NVM 的話冰肴,可以刪除依賴中的 node:
brew uninstall node
安裝腳本
下載官網(wǎng)提供的安裝腳本來安裝
curl -o- -L https://yarnpkg.com/install.sh | bash
npm 安裝
這是最不推薦的一個(gè)方式
npm install --global yarn
驗(yàn)證安裝成功
選擇以上三個(gè)方法之中的任意一種安裝成功之后屈藐,運(yùn)行如下命令檢測是否安裝成功
yarn --version
如果提示沒有命令榔组,去修改.zshrc
(或.profile
, .bashrc
)添加如下語句
export PATH="$PATH:$HOME/.yarn/bin"
常用命令
安裝完畢了,那么就要使用它了联逻,下面是一些常用命令和 NPM 對應(yīng)命令的對照表
作用 | NPM 命令 | Yarn 命令 |
---|---|---|
安裝 | npm install | yarn |
安裝某個(gè)包 | npm install xxx —save | yarn add xxx |
刪除某個(gè)包 | npm uninstall xxx —save | yarn remove xxx |
開發(fā)模式下安裝某個(gè)包 | npm install xxx —save-dev | yarn add xxx —dev |
更新 | npm update —save | yarn upgrade |
全局安裝 | npm install xxx –global | yarn global add xxx |
還有一些包發(fā)布者才會(huì)用到的命令就不作詳細(xì)講解了
總結(jié)
yarn 目前來說已經(jīng)可以做到替換 npm 了搓扯,趕緊使用它換取更高的工作效率吧,Enjoy it~