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