如何評價首發於 2020 年 1 月下旬的 JavaScript 依賴管理器 Yarn 2?

時間 2021-05-05 17:20:03

1樓:redblue

怎麼說尼,3月了,我還是無法用Berry跑通我的專案和新建的專案。儘管它的官網已經正式換了很久……還有VSCode還不夠支援,但是總覺得成熟之後會對前端開發體驗有個改善。還是挺期待,雖然我現在從Yarn->Berry->npm。

總有一天我會Yarn->Berry->npm->Berry。

2樓:

從工程角度而言,PNP是乙個進步。改用cache來替代node_modules雖然有點激進,但為了啟動索引優化,算是好事。另外一些新的workspace feature很好替代了lerna; lerna的需求空間進一步被壓縮。

總體來看是好事。

3樓:

先說總結:可以嘗鮮,但不適合引入正式的工程體系。

Yarn v2 做了很多改進和優化,比如更友好的 CLI 互動、更強大的 Workspace 功能、更規範的 YAML 格式的 Lockfile 和配置檔案等。具體可看 Introducing Yarn 2 ! ,此處就不贅述了,下面主要說說遇到的坑和潛在的風險。

按照現在官方文件,現階段只支援使用 npm 安裝 Yarn v2,Homebrew 和 yum 都不支援。以 macOS 系統為例:

brew uninstall yarn

npm install -g yarn@berry

個人開發電腦可以手動安裝,但對於私有的 CI/CD 服務和線上服務,通過 npm 安裝缺少必要的簽名和完整性檢查,存在一定風險。不過隨著 Yarn v2 的正式發布,這一問題相信很快會解決。

Yarn V2 使用了與 v1 不同的配置檔案,檔名、格式和具體配置的字段都發生了變化,主要有:

不再讀取和使用 .npmrc 和 .yarnrc 檔案中的配置;

不再支援以 npm_config_ 為字首的環境變數配置;

npm 源的配置欄位名變更為 npmRegistryServer ;

具體配置內容可檢視 https://

。Yarn v2 預設使用 Plug'n'Play,直觀來說就是執行 yarn install 之後專案裡不再有 node_modules 目錄了,取而代之的是 .yarn 目錄和 .

pnp.js 檔案,前者存放 zip 格式包檔案,後者提供包依賴關係。

Plug'n'Play 可以解決 node_modules 的諸多問題,但在實際使用中也發現了一些新問題。比如依賴包檔案都以 zip 格式儲存,當需要檢視包檔案內容時,好像只能到 GitHub/GitLab 等 git 倉庫檢視了。雖然提供了 yarn unplug 命令可以強制把包解壓到 .

yarn 目錄中,但若只是為了檢視包檔案內容就沒有必要了(而且似乎沒有找到 yarn unplug 的逆命令)。

目前可以通過配置 .yarnrc.yml 檔案切換回 node_modules,不過官方說該功能仍處於試驗階段。

nodeLinker

:node-modules

在 Plug'n'Play 的基礎上,Yarn v2 提出了 Zero-Installs,廢棄了原本的 yarn-offline-mirror 配置。

簡而言之就是在執行 yarn install 之後把 .yarn/cache 和 .pnp.

js 新增到版本管理庫中 ,當其他人拉取工程後,即使不手動安裝依賴也可以直接執行專案。

這一改變對於開發環境似乎並沒有什麼優勢;不過對於服務端應用的 CI/CD,相比原本的 node_modules 可能 Zero-Installs 會更優?

我用的是 WebStorm 2019.3.2,實際測試並不支援 Yarn v2(yarn@2.

0.0-rc.27)。

據 JetBrains 官方答覆將在 2020.1 EAP 支援。

VSCode 參考 Editor SDKs 配置後可以正常使用,但也面臨無法開啟包檔案的問題,或許通過支援 ZipFS 可解?

(其他遇到了再補充)

4樓:

晚了吧?Facebook 的績效週期是按自然年的上半年和下半年計算的,下半年的績效週期已經於 12 月 31 日結束,2020 年 1 月下旬才來發,2019 年下半年的績效打分都已經確定啦。

以上是開玩笑。作為曾經的 Facebook 前端工程師,我不準備那麼快換 Yarn,因為 Facebook 的基因還是 move fast,不會一上來就發布乙個很穩定的東西,總是先把花了 20% 力氣做到 80% 的東西先發出去。之後慢慢看效果,再確定剩下需要 80% 力氣才能完成的 20% 做不做和怎麼做。

這種快速試錯的模式使得很多東西容易半途而廢,對公司內部來說,我們叫做「這條路我們走了一小段就搞明白前方會有懸崖,終歸無法抵達終點,沒有浪費力氣在錯誤的道路上走太遠」,對外體驗就不是很好。所以我會很有耐心地等到社群用量上去了我再切換,反正它沒有明顯的好處吸引我盡早切換。

當然,它新增的那些功能可能在 Facebook 裡面是非常有用的,可能該在 2019 年下半年績效週期完成的功能早就在公司內部發布,現在才緩緩地對外發布出來。但這些功能對我沒用我就是不遷移。

5樓:王強強

移除了node_modules這個毒瘤,現在的依賴是配置在.pnp.js 。

增加了plugin,給予開發者可以擴充套件yarn2的功能 ,非常實用。

增加了各種協議,支援通過各種方式載入依賴『增加了workflow,讓開發者更加容易處理乙個倉庫包含多個package的情景。

如何評價2023年9月及2023年6月12日,觀察者網編輯對《原神》的相關爭議評價?

應該是沒玩過原神,沒打聽過原神。或者可能是打聽過原神之後,假設公尺哈遊是資本家,假設自己的無產主義革命家。然後用自己充滿著智慧型的腦子腦補 想象出原神壓榨這玩家的錢。原神甚至可以榨取玩家的剩餘價值,觀察者網這個評價就是為黑而黑。心急一點的玩家50個小時就搞完了 正常玩家100多個小時體驗差不多了 細...

2020 年 1 月已經過去了,如何評價 2020 開年的這個月?你有什麼想說的嗎?

小二豬 2019末 你好哇,2020 2020疫情爆發後 原來,你不好,我也不好 大家都不好 2020疫情爆發後接二連三的壞訊息湧來 你怎麼還不好 你會好的吧你會好的 朱耀華 謝 小龍人胖嘟嘟 邀 本來平安過了2019年,心裡踏實,不再怕憑九必災這魔咒,可惜忘了中國暦法是立春才算新一年開始。在新一年...

怎麼看待2023年5月下旬開始的美國暴動,這對未來會產生哪些影響?

南喬木 那個黑人吸食了過量的疑似來自中國的芬太尼,使用了疑似來自中國的假幣,感染了疑似發源於中國的新冠肺炎,然後在一場過度執法中死了,在美國乃至全世界釀成了一場巨大的風暴。你猜對未來產生哪些影響? 星空法庭 美國現在被撕裂,恐怕說明種族問題本質就是無解的。這讓我想到的了另乙個問題。中國的大一統,除了...