composer help 仅显示当前项目上下文(需存在 composer.json)下的可用命令帮助,无文件时可能报错;查全局命令用 composer list,查具体命令参数必须用 composer help 命令名。

直接运行 composer help 只显示当前上下文可用的命令列表,不是完整手册;查具体用法必须加命令名,比如 composer help install。
为什么 composer help 有时没输出或报错
不是命令坏了,而是 Composer 对“项目上下文”有硬性要求:它需要当前目录下存在 composer.json(哪怕空文件)。没有这个文件,部分子命令的帮助不会加载,甚至可能报 Command "help" is not defined。
- 快速补救:在当前目录执行
touch composer.json(Linux/macOS)或type nul > composer.json(Windows) - 如果只是想看全局命令列表,绕过上下文限制,直接用
composer list更可靠 - 插件命令(如
composer normalize)必须先安装并激活,否则composer help normalize会报 “Command not defined”
composer list 和 composer help 到底怎么分工
composer list 是命令索引,composer help xxx 才是参数说明书。两者不能互相替代。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer list输出所有已注册命令 + 一行简介,按字母排序,不带参数说明 -
composer list -v会多显示一点描述,但依然不解释--no-dev在不同命令里是否生效 - 真正要看选项含义、默认行为、参数顺序影响,必须指定命令:
composer install --help或composer update -h -
composer --help和composer help等价,但只列顶层命令;composer --help还会附带全局选项(如-v,--no-ansi)
查某个命令时容易忽略的关键细节
帮助页里写的不是“语法模板”,而是执行逻辑快照。参数组合和位置会影响实际行为。
- 位置参数(如包名
monolog/monolog)必须放在所有选项之后,否则会被当成选项值吞掉 -
--no-update是“开关型”参数:加了它,composer require只改composer.json,不装包也不写vendor/ -
--dev和--no-dev互斥,但--dev优先级更高;同时出现时后者被静默忽略 -
--optimize-autoloader只在install或update中起作用,composer help install --optimize-autoloader不会触发任何构建
终端里快速定位关键参数的实操技巧
帮助输出长且无分段,手动滚动效率低。直接用 shell 工具过滤最省事。
- Linux/macOS:
composer update -h | grep -- "--no"或composer require -h | grep -A2 "version" - PowerShell:
composer install -h | findstr "--no-dev" - 想确认某选项是否支持?别信博客或旧文档,
composer help xxx的输出就是你本地版本的唯一权威来源 - 帮助文本全部硬编码为英文,不随系统 locale 变化;不存在
--lang=zh这类参数,也别搜“中文手册”
最常被跳过的一步,是查完 composer list 就以为“知道怎么用了”。其实每个命令的语义边界、参数副作用、执行时机都藏在它的 --help 里——尤其像 update 默认不装新包、install 默认跳过 require-dev 这类反直觉行为,不看具体帮助根本没法写稳 CI 脚本。

















