yarn在package.json的一些字段


強制孫依賴的版本

今天博主遇到一個棘手的問題,@vue/cli-service 依賴了一個包 portfiner@^1.0.20,但是 2 天前,這個包更新到了1.0.22,帶來了一些問題。

博主第一反應就是想 yarn add portfinder@1.0.21,看看yarn可不可以復用這個版本。

但是結果卻是 1.0.21 和 1.0.22 都裝上了,而且 @vue/cli-service 還是依舊用的是 1.0.22 這個問題版本。

一怒之下,博主到yarn的文檔隨便翻了翻,結果還真有一個東西: “resolutions”:

在 package.json 定義 resolutions

{
  "name": "project",
  "version": "1.0.0",
  "dependencies": {
    "left-pad": "1.0.0",
    "c": "file:../c-1",
    "d2": "file:../d2-1"
  },
  "resolutions": {
    "d2/left-pad": "1.1.1"
  }
}

這樣的結果是,這個項目下,所有的 d2/left-pad@1.1.1 范圍內符合的,都指向這一版。

monorepo的多重依賴 --- workspace

 

{
    "private": true,
    "name": "project",
    "version": "1.0.0",
    "workspaces": [
        "apps/*",
        "packages/*"
    ]
}

 

上面這里private true,會組織npm發包

我們安裝依賴,只需要在項目根目錄yarn一下就可以裝項目里面所有依賴(包括子項目的依賴)

啟動子項目:yarn workspace <name> <script>

 

推薦閱讀:https://zhuanlan.zhihu.com/p/71385053

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM