如何在composer.json中定义并执行自定义命令?(scripts别名)

admin 百科 15
在 composer.json 中定义自定义命令本质是通过 "scripts" 字段配置脚本别名,供 composer run 调用;支持字符串、数组、对象形式,可复用、绑定事件、调用 PHP 脚本,实现项目内轻量自动化。

如何在composer.json中定义并执行自定义命令?(scripts别名)-第1张图片-佛山资讯网

composer.json 中定义自定义命令,本质是通过 "scripts" 字段配置脚本别名,让 composer run(或旧版 composer run-script)能触发执行。它不创建全局 CLI 命令,而是为项目内部常用操作提供快捷入口。

在 scripts 中定义命令别名

把命令写进 composer.json"scripts" 对象里,键名就是你调用的别名,值可以是字符串命令、数组(多条顺序执行)、或对象(支持事件钩子等高级用法)。

  • 最简形式:直接写 shell 命令字符串(支持 PHP 内置命令、已安装的二进制文件、或相对路径脚本)
  • 推荐用数组形式,更清晰且兼容性更好,尤其含空格或管道时
  • 命令中可用 $COMPOSER_BIN_DIR$COMPOSER_HOME 等环境变量(Composer 自动注入)

示例:

"scripts": {
  "dev:clear": [
    "php artisan config:clear",
    "php artisan cache:clear"
  ],
  "test:unit": "vendor/bin/phpunit --testsuite=Unit",
  "build:dist": "npm install && npm run build"
}

登录后复制

执行自定义命令

定义后,用 composer run <script-name></script-name> 执行(Composer 2.2+ 推荐语法),旧版本可使用 composer run-script <script-name></script-name>

  • composer run dev:clear → 清除 Laravel 配置与缓存
  • composer run test:unit → 运行单元测试
  • --no-ansi-v 等参数可透传给底层命令

注意:脚本默认在项目根目录运行,路径无需额外切换。

标签: php laravel js 前端 json composer npm 环境变量

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~