yarn 學習總結

2021-10-07 12:46:50 字數 2155 閱讀 8208

yarn 官網:

yarn 是由facebook、google、exponent 和 tilde 聯合推出了乙個新的 js 包管理工具,它仍然使用 npm 的registry,不過提供了全新 cli 來對包進行管理

過去,yarn 的出現極大的搶奪了 npm 的市場,甚至有人戲言,npm 只剩下乙個 registry 了。

之所以會出現這種情況,是因為在過去,npm 存在下面的問題:

控制台輸出繁雜:過去,npm 安裝包的時候,每安裝乙個依賴,就會輸出依賴的詳細資訊,導致一次安裝有大量的資訊輸出到控制台,遇到錯誤極難檢視

工程移植問題:由於 npm 的版本依賴可以是模糊的,可能會導致工程移植後,依賴的確切版本不一致。

針對上述問題,yarn 從誕生那天就已經解決,它用到了以下的手段:

不僅如此,yarn還優化了以下內容:

yarn 的出現給 npm 帶來了巨大的壓力,很快,npm 學習了 yarn 先進的理念,不斷的對自身進行優化,到了目前的npm6版本,幾乎完全解決了上面的問題:

總結

npm6 之後,可以說npm已經和yarn非常接近,甚至沒有差距了。很多新的專案,又重新從yarn轉回到npm。

初始化

初始化:yarn init [--yes/-y]

安裝

新增指定包:yarn [global] add package-name [--dev/-d] [--exact/-e]

安裝package.json中的所有依賴:yarn install [--production/--prod]

指令碼和本地cli

執行指令碼:yarn run 指令碼名

start、stop、test可以省略run

執行本地安裝的cli:yarn run cli名

查詢

檢視bin目錄:yarn [global] bin

查詢包資訊:yarn info 包名 [子欄位]

列舉已安裝的依賴:yarn [global] list [--depth=依賴深度]

yarn的list命令和npm的list不同,yarn輸出的資訊更加豐富,包括頂級目錄結構、每個包的依賴版本號

更新

列舉需要更新的包:yarn outdated

更新包:yarn [global] upgrade [包名]

解除安裝

解除安裝包:yarn remove 包名

在終端命令上,yarn不僅僅是對npm的命令做了乙個改名,還增加了一些原本沒有的命令,這些命令在某些時候使用起來非常方便

yarn check

使用yarn check命令,可以驗證package.json檔案的依賴記錄和lock檔案是否一致

這對於防止篡改非常有用

yarn audit

使用yarn audit命令,可以檢查本地安裝的包有哪些已知漏洞,以**的形式列出,漏洞級別分為以下幾種:

yarn why

使用yarn why 包名命令,可以在控制台列印出為什麼安裝了這個包,哪些包會用到它

yarn create

非常有趣的命令

今後,我們會學習一些腳手架,所謂腳手架,就是使用乙個命令來搭建乙個工程結構

過去,我們都是使用如下的做法:

全域性安裝腳手架工具

使用全域性命令搭建腳手架

因此,可以使用yarn create命令來一步完成安裝和搭建

例如:# 等同於下面的兩條命令

YARN學習總結 第二節 YARN架構

1.yarn架構 資源管理器 resourcemanager 和節點管理器 nodemanager 組成了資料計算框架。資源管理器是系統中的應用資源的權威仲裁者。節點管理器是乙個在每個節點都會執行的框架的 負責容器,監控資源的使用,並且報告這些資訊給資源管理器或者排程器 scheduler 來自網際...

YARN學習總結 第五節 YARN保留系統

reservation system yarn提供保留系統,允許使用者提前或者設定保留資源給重要作業。通過絕對數值的形式指定代替百分比。保留系統是乙個yarn resourcemanager的元件。保留系統工作流程 0.使用者提交乙個保留建立請求,返回乙個reservationid 1.使用者提交乙...

YARN學習總結 第八節 YARN節點管理

nodemanager nodemanager會執行健康檢查,可以是檢查磁碟或者任意使用者指定的檢查指令碼,如果檢查失敗,則標記此節點為unhealthy並且報告給resourcemanager,然後停止分配容器到此節點。磁碟檢查 磁碟檢查兩個目錄 local dirs和log dirs 分別由ya...