composer config -l 显示当前生效的最终合并配置值,而非原始文件内容;需配合 --global --verbose 查看实际加载路径,并清除缓存、删除 vendor 和 composer.lock 后验证。

直接运行 composer config -l 查当前生效值
这个命令输出的是最终合并结果,不是配置文件原始内容。它会把项目级 composer.json、全局 config.json、环境变量(如 COMPOSER_HOME)全部叠在一起,只显示“此刻 Composer 实际用的值”。比如你改了 config.vendor-dir,但没删旧 vendor,composer config -l 仍会显示旧路径——因为 Composer 检测到 vendor 已存在,就跳过初始化逻辑,vendor-dir 配置根本没被应用。
加 --global 和 --verbose 看配置来源
运行 composer config -l --global --verbose,第一行会明确写出 Loaded config file: 路径。这是验证“你改的到底是不是 Composer 正在读的那个文件”的唯一可靠方式。常见失效场景包括:
- 你用普通用户改了
~/.composer/config.json,但之前用过sudo composer,现在实际读的是/root/.composer/config.json - Windows 下设置了
%COMPOSER_HOME%,但指向了一个空目录或拼写错误的路径 - CI/CD 流水线里
COMPOSER_HOME被覆盖,而你本地调试时没意识到
换源后必须 composer clear-cache 才算真生效
改完 repo.packagist 地址不清理缓存,等于白改。Composer 会继续从旧缓存里读 packages.json 快照,导致 composer install 找不到包、解析版本失败、甚至卡在 Loading composer repositories...。验证是否生效最简单的办法是:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先执行
composer clear-cache - 再运行
composer show --platform或随便一个composer require操作 - 观察终端输出的 URL 是否变成你设的新镜像地址(比如
https://mirrors.aliyun.com/composer/),而不是https://packagist.org
path 仓库和 autoload 改动要单独验证
composer config -l 不会告诉你 path 类型仓库有没有被识别,也不会反映 autoload 映射是否更新。这类改动必须手动确认:
- 运行
composer show --all | grep your-vendor/your-package,如果没输出,说明 name 或路径不匹配,或者本地包根目录下composer.json有语法错误 - 检查
vendor/your-vendor/your-package是符号链接还是普通文件夹:Linux/macOS 用ls -la,Windows 用dir,看到箭头或JUNCTION才代表 symlink 生效 - 改了本地包的
autoload配置后,主项目必须手动运行composer dump-autoload -o,否则新类路径不会进自动加载映射
最容易被忽略的是:配置改了、缓存清了、命令也跑了,但旧 vendor 或 composer.lock 残留,会让整个验证过程变成“看起来生效了,其实没动”。动手前务必确认这两样东西已彻底移除。










