本地包未被识别需确保repositories字段位于项目根composer.json顶层,且name、autoload、git初始化、symlink等配置全部正确对齐。

本地包没被识别?检查 repositories 是否写在项目根 composer.json 里
很多人把 type: "path" 写进本地包自己的 composer.json,或者塞进主项目的 require 字段里——这完全无效。Composer 只会在项目根目录的 composer.json 的 repositories 数组中读取 path 源。
常见错误现象:Could not find package vendor/name at any version,本质是 Composer 根本没看到你声明的本地路径。
-
repositories必须是项目根composer.json的顶层字段,不是嵌套在require或config里 -
url值支持相对路径(如"../my-pkg")和绝对路径(如"/Users/me/dev/my-pkg"),但不能含~或环境变量($HOME不展开) - Windows 下用绝对路径需管理员权限或开启开发者模式,否则符号链接创建失败
- 如果本地包目录不在当前 shell 路径下,别靠
cd补救——url是相对于composer.json文件位置,不是终端当前路径
vendor/name 对不上?确认本地包 composer.json 的 name 字段
Composer 匹配本地包不看文件夹名,只认 composer.json 里的 name。哪怕你把文件夹叫 foo-bar,只要里面 composer.json 写的是 "name": "acme/utils",你就必须在主项目中 require "acme/utils",而不是 "foo/bar"。
常见错误现象:Package acme/utils is not installed,或 install 后 vendor/acme/utils 是空目录/报错。
-
name必须包含 vendor 名(如"myorg/http-client"),不能只写"http-client" - 大小写必须完全一致:Linux/macOS 下
"MyOrg/Http"≠"myorg/http" - 本地包目录必须已运行过
git init并至少有一个 commit,否则 Composer 拒绝加载(即使有composer.json) - 若本地包没打 tag,
version字段建议设为"dev-main",并在主项目require中对应写"dev-main",不是"*"或"^1.0"
install 后 vendor/ 里是普通文件夹?检查符号链接是否启用
path 类型源默认走符号链接(symlink),不是复制文件。如果你看到 vendor/vendor/name 是个真实文件夹而非软链(macOS/Linux 下 ls -l 显示 ->),说明 symlink 被禁用了或 fallback 到 copy 模式。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
常见错误现象:改了本地包代码,项目里没生效,还得手动 composer update。
- 检查项目
composer.json的config.symlinks是否被设为false;全局配置也可覆盖(composer config -g symlinks false) - Windows 用户需确认是否以管理员身份运行终端,或已启用“开发者模式”
- 路径权限不足时 Composer 会静默 fallback 到 copy,此时不会报错,但失去热更新能力
- 想强制 symlink,可在 path repository 中加
"options": {"symlink": true}(部分 Composer 版本支持)
改了本地包代码却加载不到新类?别只 dump-autoload
这是最常踩的坑:以为改完 src/Helper.php,跑一遍 composer dump-autoload 就行了。其实不行——path 源下的 autoload 是由本地包自己的 composer.json 的 autoload 配置驱动的,主项目只负责链接,不重新生成自动加载映射。
常见错误现象:Class MyOrgHelper not found,但文件明明存在、命名空间也对。
- 确保本地包
composer.json有合法autoload(如"psr-4": {"MyOrg\": "src/"}),且路径大小写与实际目录严格一致 - 修改本地包后,**必须**在主项目中运行
composer update vendor/name(不是全量update),触发 symlink 重建和 autoload 重生成 - PSR-4 映射中的命名空间前缀必须以双反斜杠结尾(
"MyOrg\"),路径值必须与剩余命名空间段完全对齐(MyOrgHttpClient→src/Http/Client.php) - 改完配置不执行
composer dump-autoload或update,vendor/autoload.php就永远读不到新规则
真正关键的不是路径怎么写,而是所有环节都得对齐:本地包有 git commit、有合法 name 和 autoload、主项目 repositories 声明正确、require 版本匹配、系统支持 symlink、且每次改完都用 update 触发刷新。漏掉任意一环,调试就卡住。










