必须同时配置repositories、require和minimum-stability三者才生效;仅改其一将静默失败,导致装错版本或报“could not find package”。

必须配 repositories + require + minimum-stability 三者才生效,缺一不可;只改 require 或只加 repositories 都会静默失败,装成 Packagist 上的旧版或直接报 Could not find package。
path 仓库必须写在主项目 composer.json 的顶层 repositories 数组里
本地包自己的 composer.json 里写 repositories 没用,Composer 只读主项目的配置。常见错误是把配置塞进 config、extra 或嵌套在别的字段下。
-
url必须是相对路径(如"../my-utils")或绝对路径(如"/home/user/my-utils"),不能以/开头(Windows 下会崩),也不能含~、$HOME、尾部/("../my-utils/"会被跳过) - 整个
repositories是数组,哪怕只配一个,也要写成[{ "type": "path", "url": "../my-utils" }] - type 必须是
"path",不是"package"或"vcs"
require 中的包名必须和本地包 composer.json 的 name 完全一致
大小写、斜杠、短横线全敏感:"acme/utils" ≠ "Acme/Utils" ≠ "acme_utils"。Composer 不解析目录名,只严格比对 name 字段。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 本地包根目录下必须有合法
composer.json,语法要正确(双引号、无尾逗号、UTF-8 无 BOM) - 若没打 Git tag,建议显式写
"version": "dev-main",否则composer require acme/utils:dev-main可能因无法推断版本而失败 - 执行命令必须用
composer require acme/utils:dev-main,不是composer install(后者只按composer.lock恢复)
不设 minimum-stability 或 prefer-stable,dev-main 会被直接过滤
默认 stability 是 stable,dev-main 属于开发版,不声明就会被跳过——结果就是 vendor/acme/utils 为空,或装了 Packagist 上同名但已废弃的老版本。
- 主项目
composer.json中必须包含"minimum-stability": "dev",或启用"prefer-stable": true并配合"stability-flags" -
symlink默认不启用:即使repositories和require都对了,若本地包composer.json里没写"options": {"symlink": true},Composer 会 fallback 成 copy,改源码不会实时生效 - Linux/macOS 正常;Windows 需管理员权限终端或开启开发者模式;Docker 要加
--cap-add=SYS_ADMIN且挂载保留 symlink 能力
新增 path 依赖后,必须手动运行 composer dump-autoload
即使 vendor/acme/utils 已链接成功,类仍可能报 Class not found——因为 PSR-4 映射没更新,vendor/autoload.php 里没有新包的自动加载规则。
- 本地包自身用了
psr-4,它的命名空间只会进vendor/composer/autoload_psr4.php,前提是跑过dump-autoload - 如果主项目也改过
autoload段(比如加了新psr-4映射),同样要一起dump-autoload - 验证是否链接成功:
ls -la vendor/acme/utils(Linux/macOS)应显示->指向源目录;Windows 用dir vendor\acme\utils看是不是快捷方式
最容易被忽略的是三处对齐:主项目 repositories.url 的路径、本地包 composer.json.name、require 中写的字符串——错一个就静默失败,没有任何提示。










