repositories 配置必须写在项目根 composer.json 的顶层数组中,不能放在本地包的 composer.json 里;url 须为指向含合法 name/version 的 composer.json 目录的相对路径;require 必须用 vendor/name:dev-branch 格式,启用 symlink 需配置 "options": {"symlink": true} 并注意系统权限。

repositories 配置必须写在项目根 composer.json 里
Composer 不会读取本地包自己的 composer.json 中的 repositories 字段,只认主项目的根级配置。如果你把 {"type":"path","url":"./packages/my-utils"} 写进了本地包的 composer.json,它完全无效。
常见错误现象:Could not find a matching version of package myorg/utils,但路径明明存在——大概率是配错了位置。
-
repositories必须是项目根目录composer.json的顶层字段,且为数组格式(哪怕只有一个) -
url推荐用相对路径(如"./packages/my-utils"),避免换机器或 CI 环境失效 - 绝对路径在 Windows 上极易静默失败(
C:\、空格、反斜杠都可能中断解析) - 该路径必须指向一个**目录**,不是
composer.json文件本身
本地包的 composer.json 必须有合法 name 和 version
Composer 会去你指定的 url 目录下读取 composer.json,并严格校验其中的 name 是否与 require 字段中写的完全一致(大小写敏感)。如果缺 name 或语法错误,Composer 会跳过该仓库,不报错也不提示。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
name格式必须是vendor/name(如"hoo/tool"),不能是"tool"或"./src" -
version可写"dev-main"、"dev-develop"等分支名;它不用于版本匹配,只是让文件合法 - 若本地包未初始化 Git,建议显式写
"version": "dev-main",否则composer require可能因无法推断分支而失败
require 字段不能直接写路径,必须走 version 约束
有人尝试这样写:"myorg/utils": "./packages/my-utils" —— 这是非法的。require 只接受 vendor/name:version 格式,不支持路径值。这么写会导致 Composer 完全忽略本地目录,仍去 Packagist 查找,必然报错。
- 正确做法:先在
repositories中声明path源,再执行composer require myorg/utils:dev-main - 版本约束必须用
dev-*形式(如dev-main),不能写1.0.0;path 源下 Composer 不读取本地version字段,只按当前 HEAD 所在分支解析 - 如果项目设了
"minimum-stability": "dev",需加@dev后缀,例如myorg/utils:dev-main@dev
改本地代码不生效?默认是复制,不是软链接
执行 composer install 或 composer require 后,vendor/myorg/utils 默认是硬拷贝(Windows)或符号链接(Linux/macOS),但 Windows 下常因权限问题 fallback 为复制,导致你改了本地代码,项目里还是旧逻辑。
- 启用符号链接:在
repositories条目中加"options": {"symlink": true} - Windows 用户需开启“开发者模式”或以管理员权限运行命令行,否则
symlink创建会失败且无提示 -
composer install不会刷新已有链接,改完本地代码后必须运行composer update myorg/utils - 验证是否成功:Linux/macOS 执行
ls -la vendor/myorg/utils,应看到->;Windows 执行dir vendor\myorg\utils,应显示“快捷方式”类型
最易被忽略的一点:path 仓库的 url 是相对主项目 composer.json 的路径,不是相对于命令行当前目录;CI/CD 构建前务必移除 repositories 中的 path 条目,否则构建会失败。










