在 pnpm + monorepo 項目中如何指定本地包的特定版本?

在 pnpm + monorepo 項目中如何指定本地包的特定版本?

pnpm + monorepo項目中指定本地包版本的方法

在使用pnpm和monorepo管理項目時,常常需要在子項目中引用其他本地包的特定版本。例如,假設有一個名為abcd的全局組件庫,希望在project1中使用其1.0.0版本。直接使用pnpm add abcd@1.0.0 –workspace命令后,package.json中顯示的版本卻是”workspace:^”,而非預期的”workspace:1.0.0″。這是因為pnpm默認行為導致的。

pnpm在處理本地包時,默認使用–workspace標志添加依賴時,會將版本設置為”workspace:^”,表示使用工作空間中最新符合^版本范圍的版本,方便管理和更新。

但如果需要指定特定版本(例如1.0.0),可以使用以下兩種方法:

  1. 手動修改package.json文件: 執行pnpm add命令后,直接編輯project1的package.json文件,將abcd的版本從”workspace:^”修改為”workspace:1.0.0″,然后運行pnpm install更新依賴。

  2. 使用–save-exact標志: 添加依賴時,使用–save-exact標志強制保存精確版本號。例如,運行pnpm add abcd@1.0.0 –workspace –save-exact。這樣,package.json中版本將顯示為”workspace:1.0.0″。

通過以上方法,即可在pnpm + monorepo項目中精確指定本地包版本,滿足項目需求。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享