pre-install-cmd在安装前执行,用于环境检查、备份等准备操作,若脚本失败则中断安装;post-install-cmd在安装后触发,常用于缓存优化、数据库迁移等收尾任务。两者通过composer.json的scripts字段配置,分别对应安装前后的自定义逻辑处理。

pre-install-cmd 和 post-install-cmd 是 Composer 提供的脚本事件,用于在安装或更新依赖时执行自定义操作。它们的主要区别在于触发时机。
pre-install-cmd:安装前执行
这个事件在 Composer 执行 composer install 或 update 命令之后、实际下载和安装包之前触发。
适合在这个阶段做以下事情:
- 备份当前环境或配置文件
- 检查系统依赖是否满足(如 PHP 扩展、权限等)
- 生成临时文件或准备运行环境
- 提示用户确认操作(例如在生产环境前警告)
post-install-cmd:安装后执行
这个事件在所有依赖包已经成功安装或更新后触发。
常见用途包括:
- 清除缓存或重建应用缓存
- 生成自动加载优化文件(如运行
dump-autoload --optimize) - 执行数据库迁移或资源文件发布(如 Laravel 中的 artisan 命令)
- 通知用户安装完成或打印下一步操作提示
配置示例
在 composer.json 中定义这些脚本:
{
"scripts": {
"pre-install-cmd": [
"echo '即将开始安装,请确保配置正确'"
],
"post-install-cmd": [
"echo '安装完成,正在优化自动加载...'",
"composer dump-autoload --optimize"
]
}
}
基本上就这些。pre 是“动手前”的准备,post 是“干完活”后的收尾。根据需要选择合适的位置执行对应逻辑。










