You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Yarn添加Fork仓库指定Commit时yarn pack报版本缺失错误

解决Yarn pack时Git Commit依赖无版本号的问题

问题根源

Yarn pack会严格校验所有依赖的package.json中是否存在version字段,而你通过Git URL指定的Commit对应的@react-oauth/google包(或其子包)的package.json里没有定义版本号,导致打包失败——尽管yarn install过程不强制校验版本。

可行解决思路

1. 本地克隆仓库补全版本后用本地依赖(推荐)

手动拉取目标Commit的代码,补充版本号后通过本地路径引入依赖:

# 克隆目标仓库
git clone https://github.com/thanhnh2-miichisoft/react-oauth.git
cd react-oauth
# 切换到指定Commit
git checkout 7f71538b0d79dbd46012aa593975f869c5bb8a28
# 找到@react-oauth/google对应的子包目录(通常在packages/google下),编辑其package.json
# 添加合法的版本号,比如 "version": "0.1.0"
# 回到你的React项目根目录,添加本地依赖
yarn add file:../react-oauth/packages/google

这种方式能让Yarn识别到完整的包信息,pack时不会再报错,且依赖逻辑清晰可控。

2. 用Yarn resolutions强制指定版本(应急尝试)

在项目根目录的package.json中添加resolutions字段,强制给该依赖指定版本:

{
  "resolutions": {
    "@react-oauth/google": "git+https://github.com/thanhnh2-miichisoft/react-oauth.git#7f71538b0d79dbd46012aa593975f869c5bb8a28",
    "@react-oauth/google/version": "0.1.0"
  }
}

添加后执行yarn install更新依赖,再尝试yarn pack。注意这种方法对部分场景可能无效,取决于Yarn版本和依赖结构。

3. 修改Yarn缓存中的包信息(不推荐)

找到Yarn缓存里的该依赖包,临时补全版本号:

  • 缓存路径一般为~/.yarn/cache/@react-oauth-google-<hash>/node_modules/@react-oauth/google/package.json
  • 编辑该文件,添加version字段(如"version": "0.1.0")
  • 重新执行yarn pack
    这种方法仅作应急使用,清理缓存后会失效,不适合长期维护。

内容的提问来源于stack exchange,提问作者tgm2025

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:07:05