结论:只需在项目composer.json根级repositories中添加合法path源(如"../my-pkg"),确保本地包含正确name的composer.json、至少一次git commit,并启用"options":{"symlink":true},再执行composer update vendor/name即可实时生效。

直接说结论:不用改全局配置、不用装插件,只要在项目 composer.json 里加一段 repositories 配置,再确保本地包有合法 composer.json,就能立刻用 composer require 装上并实时生效。
为什么 composer require vendor/name 一直报 “Could not find package”
不是网络问题,也不是缓存没清——Composer 根本没“看见”你的本地目录。它只在 repositories 数组里找源,require 字段只负责声明“我要哪个包”,不负责“去哪找”。
-
repositories必须写在主项目(即你正在开发的那个项目的)composer.json根级,不能塞进require或其他字段里 -
url必须是相对路径(如"../my-pkg"),绝对路径在 Windows 上极易静默失败(盘符、反斜杠、空格都会中断) - 本地包目录下必须有合法的
composer.json,且其中name字段(如"acme/utils")要和require里写的完全一致(大小写敏感、分隔符只能用短横线-) - 版本约束必须用
dev-main、dev-develop这类分支名,不能写1.0.0——path 源下 Composer 忽略version字段,只认当前 Git HEAD 所在分支
怎么让改完本地代码,主项目里立刻生效
默认行为是复制(copy),不是链接(symlink)。这意味着你改了 ../my-pkg/src/Helper.php,vendor/acme/utils/Helper.php 还是旧文件。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 必须显式启用符号链接:在主项目
composer.json的repositories条目里加"options": {"symlink": true},或者在本地包自己的composer.json里加同样字段(效果等价) - 执行
composer update acme/utils(不是dump-autoload),才会重建 symlink - 验证是否成功:
ls -la vendor/acme/utils(Linux/macOS)应显示箭头指向源目录;Windows 用户用dir vendor\acme\utils看是否为“快捷方式”或JUNCTION类型 - Windows 需开启开发者模式或以管理员权限运行命令行,否则 symlink 创建会失败且无提示
composer install 后 vendor 里是空的或没更新,怎么办
composer install 只重建缺失的链接,不会刷新已有链接的目标路径。它依赖 composer.lock 记录的当前解析结果,而这个结果在首次 require 或 update 时就已固化。
- 改完本地包代码,
composer install什么也不做;必须运行composer update acme/utils才会重新解析 path、重建 symlink -
composer update无参数会全量重算,慢且易引入意外变更;指定包名更快、更安全 - 如果
vendor/acme/utils是普通文件夹(非 symlink),说明 fallback 成 copy 了——立刻检查本地包composer.json是否漏了options段 - CI/CD 环境下 symlink 必然失败,因为路径不存在;上线前必须移除
repositories中的 path 条目
最常被忽略的一点:本地包目录必须至少有一个 git commit,否则 Composer 会拒绝加载——哪怕你根本没用 Git 做版本管理,也得跑一遍 git init && git add . && git commit -m "init"。










