Lastor
[Coding] 真是服了,嘗試跟著一些文章教學去搭一個簡易的 pnpm monorepo,結果安裝引用 repo 內的 package 這邊一直失敗
Lastor
monorepo 的一個便利處是可以直接假安裝內部的 repo 作為套件來使用,也就能做到一個 package 同時提供給多個 app 使用,不用 publish 他
Lastor
package.json 會記錄成這樣,帶有 workspace 前綴
https://images.plurk.com/5Kuf4yahJB6l6mYmzAhiiR.png
Lastor
這個似乎在發佈時,monorepo 的機制會自動把 workspace 換掉
Lastor
查了幾篇網路教學,說要安裝內部 repo 時,直接正常在子專案這樣輸入就好
pnpm add @packages/utils
Lastor
如果是在根目錄,則可以用 filter
pnpm --filter @apps/app1 add @packages/utils
Lastor
但我實測不行,pnpm 會一直去遠端 npm 上找,然後跟你說找不到
Lastor
我後來問 chatGPT 他也是要我這樣下指令。我就進一步問他說會報錯,把 pnpm 的錯誤訊息貼給他
ERR_PNPM_FETCH_404  GET https://registry.npmjs.org/... Not Found - 404
Lastor
他才跟我說,這樣下指令是錯的,需要加上 --workspace 讓 pnpm 知道你是要在本地 monorepo 裡面找
Lastor
我就驚覺不對,再追問說是不是舊版 pnpm 不用,新版才強制一定要加參數?
Lastor
chatGPT 回說,對,pnpm v8.6 開始修改了機制,原本預設會先嘗試找 workspace,現在改成一定要加參數
Lastor
但問題是我去翻 pnpm 的 chnagelog 沒翻到就是,太久遠了不可考
載入新的回覆