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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rush.js基础

發(fā)布時(shí)間:2023/12/18 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rush.js基础 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Rush方案

  • 多項(xiàng)目并存下,Symlink實(shí)現(xiàn)依賴只需一套,無重復(fù)安裝
  • 提供項(xiàng)目間的自動(dòng)link
  • 多線程構(gòu)建多項(xiàng)目,加快構(gòu)建速度
  • 自動(dòng)檢測有改動(dòng)的項(xiàng)目,按配置產(chǎn)出版本號(hào)和changelog
Symlink(符號(hào)鏈接)

Rush一次性安裝全部原始依賴在Root下的common/temp目錄下,從該目錄下提供Symlink給單個(gè)項(xiàng)目引用。
Symlink只是提供指針,這樣保證了對于依賴本身的更新會(huì)實(shí)時(shí)展現(xiàn)在項(xiàng)目中,且依然保有原有各項(xiàng)目的node_modules的結(jié)構(gòu)

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

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

發(fā)布方案

  • rush.json中可配置區(qū)分需要發(fā)布和不必要發(fā)布的包
  • 根據(jù)上面配置,rush publish自動(dòng)升級版本號(hào)并發(fā)布有過更新的包,這兩個(gè)也可分開執(zhí)行
  • rush change幫助產(chǎn)出簡介規(guī)范的change log,沒有change log的改動(dòng)會(huì)導(dǎo)致CI失敗

Rush好處

  • 規(guī)范性強(qiáng),配置細(xì)分、各司其職
  • 消除phantom,可控性更強(qiáng)
  • 消除doppelgangers減少依賴冗余更徹底
  • 可以實(shí)現(xiàn)更智能的版本選擇
  • 支持npm/yarn/pnpm,其中pnpm是Lerna不支持的
  • 對change log的更新支持更好,Lerna則需要擴(kuò)展

Lerna好處

  • 當(dāng)前使用最廣,經(jīng)過各大型項(xiàng)目檢驗(yàn)
  • 配置簡單,可擴(kuò)展性好
  • 版本號(hào)管理有成熟的fixed/independent兩種模式,Rush的Version Policy目前還是實(shí)驗(yàn)性功能。

結(jié)論

  • rush的使用是咦monorepo風(fēng)格為前提的
  • 通過symlink實(shí)現(xiàn)減少重復(fù)依賴和消除phantom、doppelgangers
  • 提供了專業(yè)的改動(dòng)和發(fā)布管理方案
  • 接入方便簡潔
  • 對比Lerna更專業(yè),但優(yōu)勢不明顯,如果沒有Rush優(yōu)勢的需求,更建議使用Lerna

了解Rush還需要了解的知識(shí)點(diǎn):

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。