yarn詳細入門教程


這里寫圖片描述

簡介

Yarn 是 Facebook, Google, Exponent 和 Tilde 開發的一款新的 JavaScript 包管理工具。就像我們可以從官方文檔了解那樣,它的目的是解決這些團隊使用 npm 面臨的少數問題,即:

  1. 安裝的時候無法保證速度/一致性
  2. 安全問題,因為 npm 安裝時允許運行代碼

Yarn 同樣是一個從 npm 注冊源獲取模塊的新的 CLI 客戶端。注冊的方式不會有任何變化 —— 你同樣可以正常獲取與發布包。


優點

一、速度快

主要還是yarn運行速度得到了顯著的提升,整個安裝時間也變得更少。

速度快主要來自以下兩個方面:

  • 1、並行安裝:無論 npm 還是Yarn在執行包的安裝時,都會執行一系列任務。npm是按照隊列執行每個package,也就是說必須要等到當前package安裝完成之后,才能繼續后面的安裝。而 Yarn 是並行執行所有任務,提高了性能。
  • 2、離線模式:如果之前已經安裝過一個軟件包,用Yarn再次安裝時之間從緩存中獲取,就不用像npm那樣再從網絡下載了。

二、一致性

為了防止拉取到不同的版本,Yarn 有一個鎖定文件 lock file 記錄了被確切安裝上的模塊的版本號。
每次只要新增了一個模塊,Yarn 就會創建(或更新)yarn.lock 這個文件。
這么做就保證了,每一次拉取同一個項目依賴時,使用的都是一樣的模塊版本。


一、安裝

1. 進入官方下載頁面安裝

2. 最簡單的方法是運行:

npm install -g yarn

現在的yarn安裝頁面是這么說的:

注意:通常情況下不建議通過npm進行安裝。npm安裝是非確定性的,程序包沒有簽名,並且npm除了做了基本的SHA1哈希之外不執行任何完整性檢查,這給安裝系統程序帶來了安全風險。

基於這些原因,強烈建議你通過最適合於你的操作系統的安裝方法來安裝yarn。

以這種速度發展下去的話,如果yarn要宣布他們自己的registry,讓開發者慢慢淘汰npm的話,我們一點都不會感到驚訝。

安裝成功后即可查看版本:

yarn --version

這里寫圖片描述


二、初始化

進入項目目錄下並執行 yarn init

yarn init

這里寫圖片描述

會在根目錄下生成一個package.json,與npm類似具體不做解釋,如下

這里寫圖片描述


三、添加依賴

1. 添加包:yarn add [pkg-name] ,會自動安裝最新版本,會覆蓋指定版本號

舉例添加 jquery :yarn add jquery

這里寫圖片描述

node_modules下會生成 jquery 文件夾,里面便是 yarn 生成的依賴

這里寫圖片描述


2. 一次性添加多個包:yarn add [pkg-name1] [pkg-name2]

舉例添加 bootstrap 和 zepto:yarn add bootstrap zepto

這里寫圖片描述

成功后如下

這里寫圖片描述


3. 添加指定版本的包:yarn add [pkg-name]@ver

舉例添加 2.1.4版本的jquery:yarn add jquery@2.1.4

這里寫圖片描述

成功后如下

這里寫圖片描述


4. 將包更新到指定版本:yarn upgrade [pkg-name]@ver

舉例將 jquery從2.1.4更新到3.0.0版本:yarn upgrade jquery@3.0.0

這里寫圖片描述

成功后如下

這里寫圖片描述


5. 將包更新到最新版本:yarn upgrade --latest [pkg-name]

舉例將3.0.0版本的 jquery更新到最新版本:yarn upgrade --latest jquery

這里寫圖片描述

成功后如下

這里寫圖片描述


6. 刪除包:yarn remove [pkg-name]

舉例刪除 jquery:yarn remove jquery

這里寫圖片描述

成功后如下

這里寫圖片描述


7. 一次刪除多個包:yarn remove [pkg-name1] [pkg-name2]

舉例刪除 bootstrap 和 zepto:yarn remove bootstrap zepto

這里寫圖片描述


四、yarn.lock 自動鎖定安裝包版本

Npm 有一個名為 shrinkwrap 的特性,其目的是在生產環境中使用時鎖定包依賴。shrinkwrap 的挑戰是每個開發者都必須手動運行 npm shrinkwrap 生成 npm-shrinkwrap.json 文件。

使用 Yarn,則截然不同。在安裝過程中,會自動生成一個 yarn.lock 文件,yarn.lock 會記錄你安裝的所有大大小小的。有點類似 PHP 開發者們所熟悉的 composer.lock。yarn.lock 鎖定了安裝包的精確版本以及所有依賴項,只要你不刪除 yarn.lock 文件,再次運行 yarn install 時,會根據其中記錄的版本號獲取所有依賴包。有了這個文件,你可以確定項目團隊的每個成員都安裝了精確的軟件包版本,部署可以輕松地重現,且沒有意外的 bug。你可以把 yarn.lock 提交到本庫里,這樣其他簽出代碼並運行 yarn install 時,可以保證大家安裝的依賴都是完全一致的。

例如上面安裝的bootstrap、jquery和zepto會在yarn.lock中有記錄,如下圖:

這里寫圖片描述

這里新建一個 yarn_demo2 的文件夾,並將 package.jsonyarn.lock 文件從 yarn_demo 文件夾中復制過來,如下圖:

這里寫圖片描述

進入yarn_demo2 文件夾 執行 yarn 命令,即可一鍵下載 yarn.lock 中記錄的依賴包,相當方便快捷,值得你擁有~

這里寫圖片描述

這里寫圖片描述


五、yarn和npm命令對比

這里寫圖片描述


其他

至於bower與npm,其用法也是大同小異,但大佬給出的建議是:
這里寫圖片描述


這里寫圖片描述
end ~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM