notify-on-install 非 composer.json 字段,需用 composer config 命令配置;设为 true 后仅广播 notify 事件,须配合插件或自定义脚本响应,否则无实际通知效果。

默认不开启,必须手动配置才能让 Composer 在 install/update 完成后发通知(比如触发钩子、推送消息)。
composer.json 里怎么配 notify-on-install
这个选项不是 composer.json 的字段,它属于全局或本地配置项,得用 config 命令设:
- 全局生效(所有项目):
composer config -g notify-on-install true - 仅当前项目生效:
composer config notify-on-install true - 查看是否生效:
composer config notify-on-install(输出true就对了)
注意:设完不会自动弹窗或发邮件——它只是告诉 Composer “装完了请调用 notify 事件”,后续得靠插件或自定义脚本响应。
notify-on-install 起作用的前提是装了监听插件
Composer 自身不处理通知逻辑,只在 post-install-cmd 和 post-update-cmd 之后广播 notify 事件。没插件监听,就等于按了静音键:
- 常见支持插件:
hirak/prestissimo不管这事;symfony/flex会响应并打印“recipe applied”类提示 - 想自己写通知?得注册一个事件监听器,比如在
composer.json里加:"scripts": {<br> "notify": "echo '✅ Installed!'"<br>},<br>"scripts-descriptions": {<br> "notify": "Run after install/update"<br>},<br>"extra": {<br> "branch-alias": {}<br>}再配合composer config notify-on-install true才能触发 - 如果用了
composer-plugin-apiv2+ 的插件,但没声明监听Composer\Script\Event::PRE_NOTIFY或POST_NOTIFY,照样没反应
为什么设了 true 却没看到任何提示?
这是最常卡住的地方——你以为开了开关就能响,其实中间缺了好几个环节:
-
notify-on-install只影响install和update,require或remove不触发 - 如果执行时加了
-q(quiet)或--no-scripts,通知事件直接被跳过 - 某些 CI 环境(如 GitHub Actions)默认禁用 TTY,导致 echo 类提示不显示,但事件其实已触发
- PHP 版本低于 7.2 或 Composer 版本太老(composer --version 确认
真正起效的链路是:设配置 → 执行 install/update → Composer 触发 notify 事件 → 插件或脚本捕获并执行 → 你才看到结果。漏掉任意一环,就安静如初。










