本地包的 composer.json 中 name 字段必须为全小写 vendor/name 格式,仅含字母、数字、短横线,严格匹配 require 中的包名,否则报“could not find package”;需配置 repositories 为 path 类型并设 minimum-stability: dev 或加 @dev 后缀,启用 symlink 需 composer ≥ 2.2 且显式开启。

本地包的 composer.json 必须合法且 name 字段严格匹配
Composer 不会从目录名或文件结构推断包名,它只读取本地包根目录下的 composer.json,并逐字比对 name 字段。这个字段必须是 vendor/name 格式,全小写、只含字母、短横线(-),不能有下划线(_)或大写字母。
常见错误现象:Could not find package acme/utils at version dev-main——八成是本地包里写了 "name": "Acme/Utils" 或 "acme_utils",而你在项目中 require 的是 "acme/utils"。
-
name必须和require中的包名完全一致(大小写敏感) - 建议在本地包目录下运行
composer validate确认 JSON 合法、无 BOM、无尾逗号 - 如果没打 Git tag,
version字段可省略,但必须确保 Git 有至少一个 commit(git init && git add . && git commit -m "init")
项目 composer.json 的 repositories 配置必须写对位置和格式
这个配置不是“可选补充”,而是唯一入口。写错位置、类型拼错、路径崩了,Composer 就会静默跳过,继续去 Packagist 找包,最终报错。
正确写法必须满足三点:写在项目根目录 composer.json 的**根级** repositories 数组里;type 是 "path";url 是相对路径(如 "../my-utils"),不能以 / 结尾,也不能用 file://、~ 或环境变量。
-
repositories是数组,哪怕只配一个,也得写成[{ "type": "path", "url": "../my-utils" }] - 绝对路径(如
/home/user/my-utils)在 CI 或协作场景下极易失效,不推荐 - Windows 下路径用
/或\都行,但统一用/可避免转义问题
require 版本号必须写成 dev-main 或带 @dev 后缀
Path 类型仓库默认只识别 dev- 开头的开发分支名,不会按 version 字段匹配语义版本。你本地包 Git 分支叫 main,就得写 "acme/utils": "dev-main";如果是 develop,就得同步改成 "dev-develop"。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
常见错误现象:Package acme/utils is not installed 或 could not be found in any version——往往是因为写了 "^1.0" 或 "*",或者漏了 "minimum-stability": "dev" 导致 dev-main 被稳定性策略过滤掉。
- 项目
composer.json中若未设"minimum-stability": "dev",需在require行末加@dev,如"acme/utils": "dev-main@dev" - 执行
composer update acme/utils(不是install)才能触发符号链接重建 - 避免全量
composer update,防止意外刷新其他依赖
为什么 vendor 里没出现软链接?检查 symlink 开关和 Composer 版本
Path 仓库默认行为是「复制」而非「链接」,这保证构建可重现,但模块开发时你需要实时反映修改。要启用符号链接,必须显式开启开关。
有两种方式:一是在本地包自己的 composer.json 里加 "options": {"symlink": true};二是全局配置 composer config --global path.repo.symlink true。但注意:该选项仅在 composer update 时生效,且要求 Composer ≥ 2.2。
- 执行后用
ls -la vendor/acme/utils检查是否显示->指向源目录 - 如果仍是普通文件夹,先确认 Composer 版本:
composer --version - Windows 下符号链接需管理员权限启用,且部分终端(如旧版 CMD)可能无法正确解析
最常被忽略的一点:autoload 失败往往和 Composer 无关,而是本地包的 composer.json 缺少 autoload 配置,或 dump-autoload 没重跑。别急着怀疑路径或仓库,先看那几行 PSR-4 映射写对没有。










