“package not found”主因是composer未访问配置源,90%因repositories顺序错、packagist.org未禁用(需{"packagist.org": false}独立置末)、vcs类型写错或url不合法;composer search仅查packagist全局索引,require则严格按repositories顺序、minimum-stability及元数据匹配。

“Package not found”不是包没了,而是 Composer 根本没去你配的源里找——90% 的 case 都卡在 repositories 顺序、packagist.org 开关、或 VCS 配置漏字段上。
composer search 能搜到,但 require 就报错?检查 minimum-stability 和 packagist.org 是否禁用
composer search 只查 packagist.org 全局索引,不看你的 composer.json 配置;而 composer require 是真安装,会严格按 repositories 顺序 + minimum-stability + 实际元数据匹配。
- 运行
composer config minimum-stability,如果输出stable(默认值),而你要装的是dev-main或dev-develop分支,它会被直接跳过,报 “not found”,不是 “版本不匹配” - 运行
composer config repositories,如果输出里还包含"https://repo.packagist.org"或{"packagist": false}这类写法,说明packagist.org没真正禁用——它必须是独立对象且放在数组末尾:{"packagist.org": false} - 临时验证:把
"minimum-stability": "dev"加进composer.json,再跑composer require vendor/name --no-update,成功就说明是稳定性拦住了
私有包或 Git 仓库 404?重点核对 repositories 中 type 和 url 格式
私有包不会出现在 Packagist,Composer 默认根本不去你写的 Git 地址拉元数据。配置错一个字段,整个 repositories 条目就被静默忽略,继续查官方源,结果当然是 404。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
type必须写"vcs",写成"git"、"github"或漏掉,整条配置无效 -
url必须是可git clone的地址,且结尾只能是.git,不能带分支/路径,例如:https://gitlab.example.com/myorg/utils.git✅,https://gitlab.example.com/myorg/utils.git#main❌ - 目标仓库根目录必须有合法
composer.json,其中name字段必须和require中写的**完全一致**(包括大小写、连字符)
国内镜像失效或同步延迟?先切回官方源验证,别盲目清缓存
阿里云、腾讯云等镜像不是实时全量同步,尤其对刚发布的包、dev 分支、或已被下架的包,极易返回 provider-2025-10.json 404。Laravel China 镜像已于 2023 年底停用,还在用必报错。
- 运行
composer config -g repo.packagist,确认不是https://packagist.phpcomposer.com这类已停用旧地址 - 临时切回官方源:
composer config -g repo.packagist https://packagist.org,再执行composer clear-cache(换源后不清缓存,仍走旧地址) - 打开
https://packagist.org/packages/vendor/name直接访问,如果页面 404,说明包确实不在 Packagist;如果能打开,但composer require失败,问题一定出在本地配置
包名拼写和不可见字符常被忽略
复制粘贴时容易带入零宽字符或全角空格,肉眼无法识别,但 Composer 会校验失败。
- 手动重打一遍包名:比如
monolog/monolog对,Monolog/monolog或monolog/ Monolog错 - 运行
composer search vendor/name,如果也搜不到,大概率是包名本身不对,或包根本没提交到 Packagist - 新包刚推到 GitHub 不等于能立刻
require——作者得主动提交到 Packagist 或配好 webhook,否则同步有延迟(通常 1–5 分钟)
最容易被绕过的点是:{"packagist.org": false} 必须是 repositories 数组里的一个独立对象,且必须放在私有源之后、数组末尾;任何嵌套、错位、拼写偏差(如 packagist.com),都会导致它被静默忽略,整个配置形同虚设。










