90%是name字段或url路径不匹配:name大小写、分隔符、斜杠须完全一致;url须指向含composer.json的目录且相对主项目路径正确;本地包需声明"options":{"symlink":true}才能生效。

Composer报“Could not find package vendor/name”但本地包明明存在
90% 是 name 字段或 url 路径不匹配,Composer 不做模糊匹配,大小写、分隔符、斜杠都必须逐字一致。
常见错误现象:composer show --all 里压根没列出你的包名;composer require vendor/name 报错找不到,但本地目录结构看起来没问题。
-
name必须和require中写的完全相同:例如本地包composer.json里写的是"acme/utils",你就不能在主项目里require"Acme/utils"或"acme_utils" -
url指向的必须是**含composer.json的目录**,不是文件,也不是 shell 当前路径——它是相对于主项目composer.json所在位置的路径,比如"../my-pkg",末尾不能加/("../my-pkg/"会被静默忽略) - Windows 用户注意:路径中含中文、空格或特殊符号时,某些 PHP 版本会解析失败;建议全英文、无空格路径
- 先确认本地包根目录下
composer.json语法合法:无 BOM、无尾逗号、所有字符串用双引号、name字段存在且格式正确
改了本地包代码,运行时还是旧逻辑
这不是 autoload 没更新,而是 symlink 根本没生效,Composer fallback 到了 copy 模式——你改的是源码,加载的是 vendor/ 里的静态副本。
关键不在主项目配置,而在**本地包自己的 composer.json 是否声明了 "options": {"symlink": true}**。缺这句,Windows 和 Docker 下几乎必 fallback。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 验证是否真用了链接:
ls -la vendor/vendor/name(Linux/macOS)或dir vendorendor ame(Windows),看到->或JUNCTION才算成功;普通文件夹就是 fallback 了 - Windows 下必须以管理员身份运行终端,否则
symlink创建失败且无任何提示 - Docker 场景需加
--cap-add=SYS_ADMIN,且挂载方式要透传宿主机 symlink 权限(例如用-v $(pwd)/../my-pkg:/workspace/my-pkg:delegated不够,得确保绑定挂载支持 inode 透传)
autoload 映射写了却 still class not found
Composer 扫描到了包,但类加载失败,问题出在 autoload 映射路径没指向真实源码位置——因为 fallback 成 copy 后,vendor/composer/autoload_psr4.php 里记录的是复制后的路径,而非你正在编辑的源码目录。
别猜,让 Composer 自己说:运行 composer dump-autoload -v,它会逐行输出扫描行为。
- 如果输出里压根没出现你的命名空间(如
App),说明本地包的 autoload 配置根本没被识别——检查是否有语法错误、PSR-4 键值末尾是否漏了反斜杠("App\"✅,"App"❌) - 如果扫描到了但跳过某些文件,注意看提示:可能是文件含 BOM、用了短标签(
)、或存在.php.bak这类非法后缀文件卡住解析 - 打开
vendor/composer/autoload_psr4.php,搜索你的前缀,确认映射路径是绝对路径(如$baseDir . '/src'),再手动检查该路径下是否存在对应文件——fallback 后这个路径指向的是vendor/内部副本,不是你本地源码
Windows 下 PATH 和权限导致 path 仓库整体失效
path 仓库配置本身依赖 Composer 正常运行,而 Windows 上 Composer 命令不可用、global 工具找不到、PHP 找不到,都会间接导致 path 依赖无法注册或加载。
-
composer命令报“不是内部或外部命令”?检查环境变量Path是否包含 Composer 安装路径(常见为C:ProgramDataComposerSetupin或%USERPROFILE%AppDataRoamingComposerendorin),改完必须新开终端 - 全局工具(如
laravel/installer)执行不了?运行composer global config bin-dir --absolute获取路径,再把这个路径也加进系统Path - PHP 不可用?设置环境变量
PHP_BINARY为完整路径(如C:phpphp.exe),不要只写php.exe - vendor 目录被 OneDrive / Dropbox 同步?移出同步文件夹,再
rm -rf vendor重装——同步客户端会锁文件、改权限,导致 symlink 创建失败或 autoload 失效
"options": {"symlink": true},以及 Windows 下没用管理员权限运行终端——这两点会让整个 path 仓库退化成“看不见的 copy”,调试时毫无提示。










