composer run-script --list 只显示 composer.json 中 scripts 字段显式定义的脚本名,不显示未绑定的内置事件;需用 composer show --events 查看全部生命周期事件。
composer
run-script --list 显示不了事件?先确认是否在项目根目录
执行
时空白或报错,大概率是因为当前不在含
的项目根目录。Composer 脚本是项目级配置,不支持全局扫描。
用
或
确认文件存在
如果在子目录(如
),
回到上层再试
Windows 下注意路径大小写不影响,但 PowerShell 有时会缓存旧路径,建议新开终端
为什么 --list 不显示自定义脚本?检查 composer.json 的 scripts 字段
只列出
中
对象下定义的键名,不会自动发现函数、命令或 vendor 里的钩子。
确保
里有类似这样的结构:
键名(如
)才是事件名,值只是执行命令,不参与列表展示
如果
是空对象
或根本不存在该字段,
就只显示内置事件(如
)——但前提是没被禁用
内置事件(如 post-autoload-dump)为什么没出现在 --list 输出里?
默认只显示「显式定义」的脚本,不主动枚举 Composer 内置生命周期事件,除非你在
里手动绑定了它们。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
想触发
,得先在
里写:
否则它只是后台默默运行的钩子,不会出现在
结果中
完整内置事件列表见 Composer 官方文档,但记住:没绑定 = 不可见 = 不能用
直接调
想快速查所有可用事件名,用 composer show --events
功能有限,真正想看“哪些事件能被监听”,应该用更直接的命令:
会列出全部内置事件(包括
、
等),按阶段分组,清晰明确
这个命令不要求项目有
,也不依赖当前目录是否有
(只要已安装 Composer)
注意:它不显示你自定义的脚本名,只管生命周期事件;而
正好相反
两个命令互补,不是替代关系。搞混这点,就容易以为“没事件”或者“脚本失效”。
composer run-script --listcomposer.jsonls composer.jsondir composer.jsonsrc/cd ..composer run-script --listcomposer.jsonscriptscomposer.json"scripts": {
"dev-start": "php -S localhost:8000 -t public",
"test": "vendor/bin/phpunit"
}dev-startscripts{}--listpost-install-cmdcomposer run-script --listscriptspost-autoload-dumpcomposer.json"scripts": {
"post-autoload-dump": "echo 'Autoload updated'"
}--listrun-scriptcomposer run-script --listcomposer show --eventspre-install-cmdpost-update-cmdscriptscomposer.jsonrun-script --list