composer的"post-update-cmd"和"post-install-cmd"的触发时机

post-install-cmd在composer install执行后触发,用于依赖安装完成后的操作;post-update-cmd在composer update执行后触发,用于依赖更新后的处理。两者分别对应安装与更新命令,常用于自动化清除缓存、生成优化文件或执行迁移等任务,关键区别在于触发命令不同:install触发前者,update触发后者。

composer的"post-update-cmd"和"post-install-cmd"的触发时机 composer的"post-update-cmd"和"post-install-cmd"的触发时机

灵机语音

灵机语音

composer的"post-update-cmd"和"post-install-cmd"的触发时机56

查看详情 composer的"post-update-cmd"和"post-install-cmd"的触发时机

post-install-cmd 触发时机

当运行 composer install 命令时触发。 这个事件在以下情况被激活:

  • 项目依赖首次安装(即 vendor 目录不存在或未完全安装)
  • 当前 composer.lock 文件存在且与 composer.json 匹配,直接按 lock 文件安装依赖
  • 没有发生依赖版本更新,仅执行安装流程

简单说:只要执行了 install 并完成安装过程,就会触发,不管是否有包变化。

post-update-cmd 触发时机

当运行 composer update 命令时触发。 这个事件在以下场景中被调用:

  • 执行 composer update 更新全部或指定的包
  • 依赖版本发生变化(如升级到新版本、降级、新增或移除包)
  • composer.lock 文件可能被重新生成

注意:即使你只更新一个包(例如 composer update vendor/package),也会触发该事件。

常见使用场景

这两个事件常用于自动化部署后的操作,比如:

  • 清除缓存(如 Laravel 的 php artisan cache:clear
  • 生成自动加载优化文件(vendor0)
  • 执行数据库迁移或配置生成

示例配置:

 "scripts": {   "post-install-cmd": [     "php artisan clear-compiled",     "php artisan optimize"   ],   "post-update-cmd": [     "php artisan migrate",     "php artisan ide-helper:generate"   ] } 

基本上就这些。两者区别关键在于命令本身:install 触发前者,vendor2 触发后者,不复杂但容易忽略。

以上就是php laravel js json composer 区别 php laravel composer json 事件 数据库 自动化

上一篇
下一篇
text=ZqhQzanResources