直接运行 composer help 不显示命令列表,是因为它仅在含 composer.json 的目录下加载当前项目上下文的命令;无该文件时可能报错或仅显示基础命令,应改用 composer list 查全局命令或 composer help 查具体用法。

直接运行 composer help 不显示命令列表,不是命令坏了,而是你大概率没在含 composer.json 的目录下执行。
为什么 composer help 什么都没输出?
它默认只加载「当前项目上下文」可用的命令,依赖 composer.json 文件存在(哪怕空文件也行)。没有这个文件,Composer 就不初始化插件、不读取配置、不注册部分子命令——结果就是报 Command "help" is not defined 或只显示极少数基础命令。
快速补救方式:
- Linux/macOS:
touch composer.json - Windows CMD:
type nul > composer.json - 或者直接换到已有项目的根目录:
cd my-project && composer help
注意:composer list 不依赖 composer.json,查全局命令更稳。
composer list 和 composer help <command></command> 怎么分工?
composer list 是索引,composer help <command></command> 是说明书。两者不能混用。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer list:列出所有已注册命令 + 一行简介,按字母排序;加-v可看稍详细的描述,但不解释参数行为 -
composer list -a:显示别名(如create-project和它的别名create) -
composer help install:才告诉你--no-dev是否生效、--optimize-autoloader在什么阶段起作用、--dry-run是否被支持 -
composer install --help和composer help install效果完全一样,任选其一
怎么看懂 help 输出里的括号和参数?
Composer 沿用 Symfony Console 规范,括号类型直接决定你能不能省略:
-
<package></package>:必填位置参数,漏掉就报Not enough arguments -
[package]:可选参数,不写就跳过(但像composer require实际不支持省略包名) -
[--dev]:布尔开关,出现即启用,不带值 -
[--version=VERSION]:带默认值的可选项,等号右边是默认值,实际可用--version=^2.0或--version ^2.0
特别注意:--dev 和 --global 互斥,同时出现会直接报 [RuntimeException] You cannot combine --global with --dev,不是警告,是硬性拦截。
插件命令(比如 composer normalize)怎么查帮助?
插件命令不会出现在空 help 输出里,也不会自动进 list,除非它已被安装并完成 autoload 注册。
- 先确认是否已安装:
composer require --dev composer-normalize - 如果全局安装,需运行
composer global update激活 autoload - 再执行
composer help normalize—— 此时才会显示插件自己提供的setHelp()内容 - 插件的帮助格式可能不统一,有些甚至没写帮助文本,
composer help normalize报Command "normalize" is not defined就说明还没激活
真正容易被忽略的是:帮助页里写的“默认值”不等于实际行为。比如 composer.json 里配了 "config": {"platform": {"php": "8.1"}},某些选项(如 --no-dev)的实际判断路径会绕过 help 文本里写的默认值。










