向Monorepo添加自定义依赖时遇ERR_PNPM_FETCH_404错误求助
解决PNPM安装Monorepo依赖时ERR_PNPM_FETCH_404(@Custom-package找不到)的问题
错误核心原因
ERR_PNPM_FETCH_404错误本质是pnpm默认向官方npm注册表(https://registry.npmjs.org/)请求拉取@Custom-package,但该包要么未发布到官方注册表,要么是私有包但未配置授权信息,导致请求返回404。
解决方案
方案1:关联Monorepo本地工作区包(推荐)
如果@Custom-package是你Monorepo项目内的子包,无需发布到远程仓库,直接通过工作区关联即可:
- 在项目根目录的
package.json中,确保workspaces字段包含该包所在路径:{ "workspaces": [ "packages/*", "packages/@Custom-package" // 替换为你的包实际路径 ] } - 在需要依赖该包的项目(比如the Address)的
package.json里,将依赖版本指定为workspace:*:{ "dependencies": { "@Custom-package": "workspace:*" } } - 执行
pnpm install,pnpm会自动关联本地工作区的包,不会再去远程注册表请求。
方案2:配置私有注册表(包在私有仓库时)
如果@Custom-package发布到了私有npm注册表(如公司内部仓库、Verdaccio):
- 在项目根目录创建或修改
.npmrc文件,添加私有注册表和授权配置:@Custom-package:registry=https://your-private-registry-url.com/ //your-private-registry-url.com/:_authToken=your-valid-auth-token - 或通过pnpm命令直接配置:
pnpm config set @Custom-package:registry https://your-private-registry-url.com/ pnpm config set //your-private-registry-url.com/:_authToken your-valid-auth-token - 配置完成后重新执行
pnpm install即可。
方案3:本地链接包(临时测试用)
如果只是临时测试需求,可通过pnpm link建立本地关联:
- 进入
@Custom-package的目录,执行:pnpm link --global - 再进入依赖该包的项目目录,执行:
pnpm link --global @Custom-package
内容的提问来源于stack exchange,提问作者Alireza Atashnejad
相关产品推荐
相关产品推荐

