post-install-cmd在composer install后触发,用于部署时优化应用;post-update-cmd在composer update后触发,适用于开发阶段更新依赖后执行迁移等操作。

在 Composer 中,post-install-cmd 和 post-update-cmd 都是脚本事件(script events),用于在特定操作完成后自动执行自定义命令或 PHP 函数。它们的主要区别在于触发的时机不同。
post-install-cmd 触发时机
这个事件在 composer install 命令执行完成后触发。
无论你是首次安装依赖,还是从 lock 文件还原依赖,只要运行了 install,就会触发它。
- 常见于部署环境:比如上线服务器时,运行
composer install安装依赖后,自动生成配置文件、清缓存等。 - 即使没有更改依赖,也会执行。
post-update-cmd 触发时机
这个事件在 composer update 命令执行完成后触发。
只有当你主动更新依赖版本(比如升级某个包)时才会被调用。
- 适合开发阶段使用:比如更新包后自动执行数据库迁移、重新生成 API 文档等。
- 不会在
composer install时触发。
实际配置示例
在 composer.json 中:
{
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan migrate",
"php artisan ide-helper:generate"
]
}
}
上面的例子中:
-
post-install-cmd在部署时确保应用优化。 -
post-update-cmd在本地开发更新包后自动迁移和生成 IDE 提示。
基本上就这些。区分清楚使用场景,能更合理地自动化项目流程。










