答案:composer run-script 用于执行 composer.json 中定义的自定义或内置脚本,支持参数传递、静默运行、跳过开发依赖等选项,可触发生命周期事件、运行多命令数组,结合 -v 调试或 --no-dev 用于生产环境,提升自动化效率。

composer run-script 命令用于手动执行 composer.json 文件中定义的自定义脚本或 Composer 内置的脚本事件。它在自动化任务、开发流程控制和部署过程中非常有用。
script 是你要运行的脚本名称,可以是自定义脚本,也可以是 Composer 的标准事件(如 post-install-cmd)。
1. 运行自定义脚本
在 composer.json 中定义一个脚本:
"scripts": { "hello-world": "echo 'Hello, World!'", "notify": "php notify.php" }然后运行:
composer run-script hello-world这会输出:Hello, World!
2. 传递参数给脚本
有时需要向脚本传递参数,使用双横线分隔:
composer run-script hello-world -- --message="Custom message"注意:参数需由实际执行的命令处理,比如 PHP 脚本中通过 $argv 获取。
3. 运行内置事件脚本
Composer 定义了一些生命周期事件,例如:
你可以手动触发这些事件对应的脚本:
composer run-script post-update-cmd这会执行 post-update-cmd 事件中注册的所有脚本,比如生成自动加载文件后执行优化操作。
4. 列出所有可用脚本
查看当前项目支持的所有脚本:
composer run-script不指定脚本名称时,会列出 composer.json 中定义的所有脚本及其描述。
5. 静默模式运行
使用 --quiet 参数避免输出额外信息:
composer run-script hello-world --quiet适用于在 CI/CD 环境中减少日志输出。
6. 使用 --no-dev 忽略开发依赖脚本
在生产环境中运行脚本时,可跳过 dev 阶段的脚本:
composer run-script post-install-cmd --no-dev这确保只运行非开发环境下的脚本逻辑。
Composer 支持多种脚本执行方式:
示例:
"scripts": { "my-script": [ "php generate-config.php", "chmod 644 config.php" ] }数组形式可按顺序执行多个命令。
调试脚本执行过程
添加 -v(verbose)选项查看详细执行信息:
composer run-script my-script -v检查脚本是否存在
如果脚本名拼写错误,Composer 会提示 “Script not found”。建议先列出所有脚本确认名称。
结合 package scripts 使用
某些 Composer 包会在安装时注册自己的脚本(如 Laravel Pint 或 Symfony Flex),可通过 run-script 触发它们提供的功能。
基本上就这些。掌握 run-script 能更好地控制项目自动化流程,提升开发效率。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号