JavaScript 包管理工具 yarn 的使用

yarn 的優(yōu)勢(shì)

yarn 是 facebook 在 2016年10月11日發(fā)布到 JavaScript 包管理工具。yarn 的優(yōu)勢(shì)可以總結(jié)為:更快、更穩(wěn)定、更友好。

1 更快

  • npm 是按照隊(duì)列安裝每一個(gè)包,前一個(gè)包會(huì)阻塞后一個(gè)包的安裝。yarn 是并行安裝,速度更快。
  • 如果安裝過(guò)某個(gè)包,yarn 會(huì)從本機(jī)離線安裝,無(wú)需再次下載
  • yarn 也是可以使用淘寶源。通過(guò)設(shè)置 ~/.npmrc 就可以使用。npmrc 配置文件中的具體內(nèi)容參考解決 npm install electron 卡在 node install.js 的問(wèn)題 。

2 更穩(wěn)定

yarn 會(huì)鎖定版本。本次安裝的包,yarn 會(huì)在當(dāng)前項(xiàng)目目錄下生成 yarn.lock 文件,記錄下準(zhǔn)確的包版本,下次安裝時(shí)能夠原汁原味的還原。為什么要求強(qiáng)調(diào)這個(gè)原版還原。因?yàn)?npm install 安裝一個(gè)包,會(huì)在 package.json 中得到一個(gè)帶向上箭頭的版本號(hào) "^2.3.0",這代表在 2.X.X 大版本中的最新版本,而如果這個(gè)大版本中的內(nèi)容變動(dòng)比較大,往往就會(huì)引起版本的問(wèn)題。受到 yarn 的壓力,從 npm 5 開始也會(huì)自動(dòng)生成一個(gè)版本鎖定文件 package-lock.json。

3 更友好

個(gè)人感覺(jué) npm 產(chǎn)生的 warning 更多,而且 yarn 的安裝信息簡(jiǎn)短明確。

比如安裝一個(gè)包,如果沒(méi)有在 package.json 中設(shè)置 description 和 repository 也會(huì)被 npm 發(fā)警告。

> npm install babel-preset-es2015
npm WARN deprecated babel-preset-es2015@6.24.1: ????  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update!
npm WARN tmp@1.0.0 No description
npm WARN tmp@1.0.0 No repository field.

+ babel-preset-es2015@6.24.1
added 65 packages in 8.547s

而 yarn 即使沒(méi)有 yarn.lock 文件,也就是給一個(gè) info 提示一下,而且 emoji 的信息用得也挺好。

> yarn add babel-preset-es2015
yarn add v1.3.2
info No lockfile found.
[1/4] ??  Resolving packages...
warning babel-preset-es2015@6.24.1: ????  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update!
[2/4] ??  Fetching packages...
[3/4] ??  Linking dependencies...
[4/4] ??  Building fresh packages...
success Saved lockfile.
success Saved 69 new dependencies.
?  Done in 6.54s.

yarn 的使用

1 安裝 yarn

直接使用 npm 全局安裝 yarn 即可

npm install -g yarn 

雖然官方推薦使用 Homebrew 用如下方式安裝 yarn。

brew install

但是 npm 安裝方便又快捷,一行命令即可,何必去安裝 Homebrew,畢竟 Homebrew 自身的安裝與安裝包,如果沒(méi)有更換為國(guó)內(nèi)的清華源或者中科大源等國(guó)內(nèi)源,速度極其慢。

2 安裝與刪除 npm 包

yarn 與 npm 的對(duì)比

  • 根據(jù) package.json 安裝依賴包
yarn install
npm install
  • 當(dāng)前目錄下安裝
npm install <package_name>
yarn add <package_name>
  • 安裝指定版本
npm install <package_name>@2.3.0
yarn add <package_name>@2.3.0
  • 當(dāng)前目錄下的開發(fā)依賴中安裝
yarn add <package_name> --dev
npm install <package_name> --save-dev
  • 全局安裝
yarn global add <package_name> 
npm install <package_name> --g
  • 刪除
yarn remove <package_name>
npm uninstall <package_name>

3 初始化項(xiàng)目與運(yùn)行腳本命令

  • 初始化項(xiàng)目 yarn init
    初始化后產(chǎn)生的 package.json 與 npm init 的結(jié)果類似,唯一就是 scripts 這個(gè)鍵名需要自己添加。

  • 運(yùn)行腳本命令 yarn run <script>
    npm run 類似。

參考

npm和yarn的區(qū)別,我們?cè)撊绾芜x擇?

技術(shù)丨微軟工程師淺談時(shí)下最火的包管理工具Yarn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容