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

Roots Bedrock引入GitHub私有付费插件遇Composer包找不到问题求助

问题:私有GitHub仓库存储WordPress付费插件无法被Bedrock的Composer识别

我尝试在个人GitHub账号创建私有仓库存储付费WordPress插件,并将其引入Roots Bedrock网站,但每个插件均出现报错:

composer.json requires {pluginname}, it could not be found in any version, there may be a typo in the package name

已完成以下配置:

  1. 仓库配置(Bedrock的composer.json):
    "repositories": [
      ...
      {
        "type":"vcs",
        "url":"https://github.com/{mygithubacct}/{reponame}"
      },
      ...
    ]
    
  2. 依赖配置(Bedrock的composer.json):
    "require": {
      ...
      "{pluginname}": "^3.1",
      ...
    }
    
  3. 权限配置(auth.json):
    {
      "github-oauth": {
        "github.com": "{token}"
      }
    }
    

确认仓库包含完整插件文件夹,且{pluginname}与插件自身composer.json的name字段完全一致,已解决连接权限问题。现存在以下疑问:

  • 当前仓库是直接复制WordPress插件文件夹作为仓库根目录,是否需要改用压缩包格式?
  • 若格式正确,还有哪些原因会导致该报错?
  • 报错上方出现Info from https://repo.packagist.org:,是否意味着Composer忽略私有仓库仅查询Packagist?如何确保它优先使用私有仓库?

解答

1. 仓库格式说明

不需要使用压缩包,直接将插件文件夹作为GitHub仓库根目录是正确的做法。核心要求是插件根目录下必须存在完整且格式正确的composer.json,且其中的name字段必须与Bedrock的composer.json中require的包名完全一致(大小写敏感)。

2. 其他可能的报错原因

  • 缺少语义化版本标签:Composer从VCS仓库识别版本依赖的核心依据是Git标签,若你的GitHub仓库没有打上符合^3.1范围的标签(如v3.1.0、v3.1.1),Composer会找不到匹配的版本。需要给仓库打上标准语义化版本标签(格式为vX.Y.Z)。
  • 分支名称不匹配:若仓库未打版本标签,Composer默认会尝试读取master或main分支的代码。如果你的仓库主分支名不是这两个,需要在仓库配置中指定分支:
    {
      "type":"vcs",
      "url":"https://github.com/{mygithubacct}/{reponame}",
      "branch": "your-branch-name"
    }
    
  • 权限未完全生效:虽然配置了auth.json,需确认token拥有该私有仓库的读取权限,可执行composer diagnose命令检查GitHub连接状态。
  • Composer缓存干扰:Composer可能缓存了旧的仓库元数据,执行composer clear-cache清除缓存后再尝试安装。
  • 插件composer.json缺失关键字段:除name外,插件的composer.json需包含version字段(或通过Git标签自动识别),否则Composer无法识别有效版本。

3. 关于Composer是否忽略私有仓库的问题

报错上方的Info from https://repo.packagist.org:仅表示Composer同时查询了Packagist,不代表忽略了私有仓库。Composer默认会按repositories数组的顺序查询所有配置的仓库。

若要确保私有仓库被优先或正确识别,可采取以下操作:

  • 将私有仓库配置放在repositories数组的最前面,Composer会按顺序优先查询。
  • 执行composer show {pluginname}命令,查看输出结果中的source字段,确认包是否来自你的私有GitHub仓库。
  • 若需完全禁用Packagist(仅在所有依赖均来自私有仓库时使用),可在repositories中添加:
    {
      "packagist": false
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:55:05