composer怎么设置notify-on-install为true_composer开启安装成功通知【提醒】

5次阅读

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

composer怎么设置notify-on-install为true_composer开启安装成功通知【提醒】

默认不开启,必须手动配置才能让 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-cmdpost-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-api v2+ 的插件,但没声明监听 ComposerScriptEvent::PRE_NOTIFYPOST_NOTIFY,照样没反应

为什么设了 true 却没看到任何提示?

这是最常卡住的地方——你以为开了开关就能响,其实中间缺了好几个环节:

  • notify-on-install 只影响 installupdaterequireremove 不触发
  • 如果执行时加了 -q(quiet)或 --no-scripts,通知事件直接被跳过
  • 某些 CI 环境(如 github Actions)默认禁用 TTY,导致 echo 类提示不显示,但事件其实已触发
  • PHP 版本低于 7.2 或 Composer 版本太老(composer –version 确认

真正起效的链路是:设配置 → 执行 install/update → Composer 触发 notify 事件 → 插件或脚本捕获并执行 → 你才看到结果。漏掉任意一环,就安静如初。

text=ZqhQzanResources