你好 Yarn 2,再見 node_modules

你好 Yarn 2,再見 node_modules(預計 4 分鐘閱讀時間)

三年多前,在 2017 年的時候, Yarn1。0 在 Facebook 的工程師的部落格中被正式宣佈。在首次釋出僅 11 個月後,已有超過 175,000 個儲存庫開始使用新的包管理器。

Yarn 從那時起一直在穩步發展,成為 npm 包管理工具的替代品,但是還是會有包管理工具共有的毛病,比如速度緩慢、複雜性增加和資料佔用。

相較於初始的版本,Yarn2 進行了一些根本性的更改,不僅解決了這些問題,還改進了整體工作流程。

當時流行的一個搞笑圖在 Yarn2 中將不復存在!

你好 Yarn 2,再見 node_modules

node_modules 比黑洞還要沒有止境

Yarn 2 有什麼新東西?

新的版本其實在去年一月份就(2020年)釋出了,但是花了更多的時間去適配大型專案和庫。

一些大公司仍在努力實現相容性(適配Angular、React Native 和 Flow),但現在已經可以在你的程式碼中使用 Yarn2 了!(可惜筆者的技術棧是Vue,Yarn2 並沒有適配)

即用支援並不是 Yarn 2 帶來的唯一重大變化(這個概念本身不是全新的,可以追溯到 2018 年 9 月),該更新實際上提供了許多很棒的功能,讓程式設計變得更加美好簡單。

Yarn 的維護者在這些改進上投入了整整一年的時間,你絕對可以感覺到 Yarn 2 是一款經過深思熟慮的產品。

實際可除錯的 CLI 輸出

以前的 Yarn CLI 輸出就像老太婆的裹腳布一樣,又臭又長。而 Yarn2 從更加結構化的 CLI 輸出開始,格式和顏色大大提高可讀性,最重要的是,每一行都有自己的錯誤程式碼,因此變得更容易除錯。

不僅僅是 node_modules

新版本顯著減少了檔案 I/O 數量,從而在安裝過程中節省了大量的時間。

Yarn 現在包含一個單地圖檔案 pnp。js ,用來跟蹤包引用並確保節點在執行程式碼後熟悉正確位置。

。yarn 資料夾會包含下載的軟體包,儲存在硬碟的某個位置上,那個位置是你的那些依賴項被快取的地方。

總而言之,惹人煩的 node_modules 沒有了!

你好 Yarn 2,再見 node_modules

當 node_modules 最終消失時

更重要的是,Yarn2 提供了詳細的舊專案遷移文件,在遷移後不會丟失node_modules資料夾 ,還等什麼?趕緊上 yarn 官網檢視遷移文件完善你的專案吧!