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),可以使用以下兩種方法:
-
手動修改package.json文件: 執行pnpm add命令后,直接編輯project1的package.json文件,將abcd的版本從”workspace:^”修改為”workspace:1.0.0″,然后運行pnpm install更新依賴。
-
使用–save-exact標志: 添加依賴時,使用–save-exact標志強制保存精確版本號。例如,運行pnpm add abcd@1.0.0 –workspace –save-exact。這樣,package.json中版本將顯示為”workspace:1.0.0″。
通過以上方法,即可在pnpm + monorepo項目中精確指定本地包版本,滿足項目需求。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END