在 composer 中,通过在 composer.JSon 的 scripts 字段定义脚本(如 hello-world),可使用 composer run-script <script-name> 执行,例如运行 composer run hello-world 输出 Hello, World!,支持自定义命令、引用内置脚本及跨平台操作,需注意语法格式正确。

在 Composer 中,run-script 命令用于运行 composer.json 文件中定义的脚本。如果你想调用一个自定义脚本,只需要先在 composer.json 的 scripts 部分定义它,然后通过 composer run-script <script-name> 来执行。
1. 在 composer.json 中定义自定义脚本
打开你的 composer.json 文件,在 scripts 字段下添加你想要的命令。例如:
{ "scripts": { "hello-world": "echo 'Hello, World!'", "build": "php build.php", "test-custom": "@phpunit --stop-on-failure" } }
上面定义了三个脚本:
- hello-world:输出一句话
- build:执行 PHP 脚本
build.php - test-custom:调用内置的
phpunit脚本(前提是已配置)
2. 使用 run-script 执行自定义脚本
保存 composer.json 后,就可以在终端中运行:
composer run-script hello-world
也可以简写为:
composer run hello-world
这会输出:
Hello, World!
3. 直接运行命令(可选)
如果你不想预先定义脚本,也可以使用 run-script 执行匿名命令(但必须通过脚本名包装或使用临时脚本方式)。不过更推荐的做法是提前注册脚本。
注意:某些脚本名称是 Composer 的事件钩子(如 post-install-cmd),而普通自定义名称(如 hello-world)则只能通过 run-script 显式调用。
4. 小技巧
- 可以用
@引用其他脚本,比如:"start": "@php server.php" - 支持跨平台命令,建议使用 PHP 脚本或封装成可执行文件
- 调试脚本时,加上
--verbose参数查看执行细节:composer run hello-world -v
基本上就这些。只要在 scripts 里定义好名字和对应命令,composer run-script 就能直接调用。不复杂但容易忽略的是要确保 composer.json 格式正确,别忘了逗号和引号。


