最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pnpm?monorepo?聯(lián)調方案問題解析

 更新時間:2024年12月31日 11:06:59   作者:JinSoooo  
文章主要介紹了在pnpmmonorepo環(huán)境下進行多庫聯(lián)調的方案,包括使用`pnpmlink`命令來鏈接指定的文件夾或全局的`node_modules`,并在項目中通過`pnpmlink--global<pkg>`來引用這些庫,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧

在我最近的工作項目中,我采用了 pnpm monorepo 來管理多個基礎庫的開發(fā)。這種方式雖然在項目組織上提供了便利,但在調試過程中卻給我?guī)砹瞬恍〉奶魬?zhàn)。

當項目中的庫出現(xiàn) bug 時,定位問題的源頭變得異常困難。我最初的想法是,由于 pnpm monorepo 環(huán)境下庫之間存在 monorepo 其他庫的依賴,傳統(tǒng)的調試方法似乎難以應對。特別是處理 workspace:* 這樣的依賴聲明時,我感到無從下手。

起初,我沒有深入研究,而是選擇了最直接的方法來應對問題:

  • 直接在項目中定位可能的錯誤點,并嘗試復現(xiàn)問題場景。
  • 在基礎庫中對發(fā)現(xiàn)的 bug 進行修復。
  • 修復后發(fā)布新版本,并在項目中驗證修復效果。

這個過程不僅繁瑣耗時,而且往往不能保證問題得到徹底解決。

調試

在 pnpm 的官網(wǎng)上看到了 pnpm link,了解了一下發(fā)現(xiàn),原來也是可以實現(xiàn)聯(lián)調的。

使用

pnpm link

pnpm linknpm link 的使用是一樣的,用于鏈接指定的文件夾。

# 找到需要聯(lián)調的庫,安裝依賴
cd ~/packages/core
pnpm install
# 來到項目中,鏈接這個庫即可
cd ~/projects/my-project
pnpm link ~/packages/core

pnpm link —global

pnpm link --global 的話,是將庫鏈接到全局的 node_modules。

然后再另一個需要使用的庫或者項目中通過 pnpm link --global <pkg> 引用即可。

# 找到需要聯(lián)調的庫,安裝依賴,然后進行 link
cd ~/packages/core
pnpm install
pnpm link --global
# 來到項目中,鏈接這個庫即可
cd ~/projects/my-project
pnpm link --global core

unlink

完成調試后,可以使用 unlink 命令來取消鏈接,用法和 pnpm link 相同。

pnpm unlink <dir>
pnpm unlink --global
pnpm unlink --global <pkg>

說明

對于庫中存在引用其他庫的情況下(workspace:* ):

pnpm link 會發(fā)出警告,但 pnpm 會自動處理這些依賴,確保所有鏈接的庫都能正確解析其依賴項。

我們可以看一下。

在你 pnpm link --global 的時候,pnpm 會進行警告。

而在項目中鏈接庫后,在 node_modules 可以看出來,pnpm 幫我們已經(jīng)處理好了。

pnpm 會對特殊的引用庫(workspace:* )創(chuàng)造軟鏈,鏈接到 pnpm monorepo 中的對應庫中。

所以,本質上說,其實和 link 單個庫是一樣的,只是 pnpm 幫我們做了些額外的依賴處理。

多庫聯(lián)調

當然,你甚至也可以直接同時 link 多個庫進行調試。這樣可以實現(xiàn)多個依賴的庫之間一起進行聯(lián)調了。

以上圖為例,現(xiàn)在要聯(lián)調 coredesigner 兩個庫,其中 designer 依賴了 core,兩個庫先分別 link。

# 分別在兩個庫中執(zhí)行
pnpm i
pnpm link --global
# 在項目中執(zhí)行
pnpm link --global core
pnpm link --global designer

其實很簡單,通過這種方式,coredesigner 都被鏈接到了全局的 node_modules 中。

原理

現(xiàn)在 coredesigner 都鏈接在了全局的 node_modules 中,而項目中其實也是軟鏈到了全局 node_modules 中。

我們再回到 desinger 庫,它依賴了 core,pnpm 會幫我們軟鏈到的 core,而此時項目的 core 是軟鏈到全局的 node_modules。

盡管兩者 core 最終都是鏈接到基礎庫中,但鏈接的路徑是不一樣的。

  • 鏈接庫存在特殊的引用庫(workspace:* )時,pnpm 會幫我們直接軟鏈到其庫里。
  • link 的方式,是軟鏈到全局 node_modules 中,再軟鏈到基礎庫中。

參考鏈接

pnpm link | pnpm

到此這篇關于pnpm monorepo 聯(lián)調方案的文章就介紹到這了,更多相關pnpm monorepo 聯(lián)調方案內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于JS實現(xiàn)導航條flash導航條

    基于JS實現(xiàn)導航條flash導航條

    flash導航條在網(wǎng)站建設中應用比較廣泛,此種效果給瀏覽者帶來極好的視覺效果,非常棒,下面小編給大家介紹基于JS實現(xiàn)導航條flash導航條,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-06-06
  • 使用JQuery進行跨域請求

    使用JQuery進行跨域請求

    JQuery 進行跨域請求實現(xiàn)代碼,需要的朋友可以參考下。
    2010-01-01
  • D3.js實現(xiàn)柱狀圖的方法詳解

    D3.js實現(xiàn)柱狀圖的方法詳解

    相信大家都知道數(shù)據(jù)可視化就是借助圖形化的手段把生硬的數(shù)據(jù)生動化,以此來展示出數(shù)據(jù)想要表達的信息,而圖表是最通常的一種數(shù)據(jù)可視化手段。可全靠自己純手動編寫各種圖表實在是讓人頭疼,各種計算各種煩?,F(xiàn)在就為大家介紹如何用D3.js來實現(xiàn)柱狀圖。
    2016-09-09
  • uni-app微信小程序下拉多選框實例代碼

    uni-app微信小程序下拉多選框實例代碼

    這篇文章主要給大家介紹了關于uni-app微信小程序下拉多選框的相關資料,在通過uniapp做app開發(fā)的時候,有場景需要用到下拉選擇框,需要的朋友可以參考下
    2023-08-08
  • avascript中的自執(zhí)行匿名函數(shù)應用示例

    avascript中的自執(zhí)行匿名函數(shù)應用示例

    javascript中的自執(zhí)行匿名函數(shù)可以用它創(chuàng)建命名空間,只要把自己所有的代碼都寫在這個特殊的函數(shù)包裝內,那么外部就不能訪問,除非你允許
    2014-09-09
  • 淺談JavaScript 數(shù)據(jù)屬性和訪問器屬性

    淺談JavaScript 數(shù)據(jù)屬性和訪問器屬性

    下面小編就為大家?guī)硪黄獪\談JavaScript 數(shù)據(jù)屬性和訪問器屬性。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • JS如何判斷是否為ie瀏覽器的方法(包括IE10、IE11在內)

    JS如何判斷是否為ie瀏覽器的方法(包括IE10、IE11在內)

    這篇文章主要介紹了JS如何判斷是否為ie瀏覽器的方法(包括IE10、IE11在內),需要的朋友可以參考下
    2015-12-12
  • JavaScript中的this例題實戰(zhàn)總結詳析

    JavaScript中的this例題實戰(zhàn)總結詳析

    使用JavaScript開發(fā)的時候,很多人多多少少都會被this的指向問題搞蒙圈,下面這篇文章主要給大家介紹了關于JavaScript中this例題實戰(zhàn)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Javascript面象對象成員、共享成員變量實驗

    Javascript面象對象成員、共享成員變量實驗

    Javascript 面象對象成員、共享成員變量實驗,需要的朋友可以參考下。
    2010-11-11
  • js+canvas實現(xiàn)簡單掃雷小游戲

    js+canvas實現(xiàn)簡單掃雷小游戲

    這篇文章主要為大家詳細介紹了js+canvas實現(xiàn)簡單掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評論

张家界市| 松潘县| 咸宁市| 洮南市| 祁东县| 陈巴尔虎旗| 察隅县| 东兰县| 普洱| 万载县| 饶河县| 宁远县| 贵阳市| 同仁县| 长兴县| 都兰县| 青浦区| 高青县| 高雄县| 马鞍山市| 孟津县| 南京市| 吉林省| 太和县| 泗洪县| 长岭县| 汉源县| 寿光市| 彭阳县| 邓州市| 察隅县| 安庆市| 兰坪| 全南县| 石门县| 会东县| 手机| 盘山县| 邯郸县| 五峰| 多伦县|