日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rush.js基础

發布時間:2023/12/18 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rush.js基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Rush方案

  • 多項目并存下,Symlink實現依賴只需一套,無重復安裝
  • 提供項目間的自動link
  • 多線程構建多項目,加快構建速度
  • 自動檢測有改動的項目,按配置產出版本號和changelog
Symlink(符號鏈接)

Rush一次性安裝全部原始依賴在Root下的common/temp目錄下,從該目錄下提供Symlink給單個項目引用。
Symlink只是提供指針,這樣保證了對于依賴本身的更新會實時展現在項目中,且依然保有原有各項目的node_modules的結構

Rush支持pnpm
Symlink幫助Rush對于依賴重復安裝的問題做的更加可控(消除phantom dependencies)和徹底(消除doppelgangers)

phantom dependencies
指沒有在package.json里制定安裝,卻可以在項目中被引用的依賴項。這可能會導致依賴版本不相容和依賴丟失的情況。

發布方案

  • rush.json中可配置區分需要發布和不必要發布的包
  • 根據上面配置,rush publish自動升級版本號并發布有過更新的包,這兩個也可分開執行
  • rush change幫助產出簡介規范的change log,沒有change log的改動會導致CI失敗

Rush好處

  • 規范性強,配置細分、各司其職
  • 消除phantom,可控性更強
  • 消除doppelgangers減少依賴冗余更徹底
  • 可以實現更智能的版本選擇
  • 支持npm/yarn/pnpm,其中pnpm是Lerna不支持的
  • 對change log的更新支持更好,Lerna則需要擴展

Lerna好處

  • 當前使用最廣,經過各大型項目檢驗
  • 配置簡單,可擴展性好
  • 版本號管理有成熟的fixed/independent兩種模式,Rush的Version Policy目前還是實驗性功能。

結論

  • rush的使用是咦monorepo風格為前提的
  • 通過symlink實現減少重復依賴和消除phantom、doppelgangers
  • 提供了專業的改動和發布管理方案
  • 接入方便簡潔
  • 對比Lerna更專業,但優勢不明顯,如果沒有Rush優勢的需求,更建議使用Lerna

了解Rush還需要了解的知識點:

  • npm:如何發布自己的npm包
  • pnpm:rush支持的包管理器對pnpm的支持比較完善。部分npm包支持有問題,所以需要知道如何配置
  • git

總結

以上是生活随笔為你收集整理的rush.js基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。