notify-on-install是Composer的布尔配置项,仅通过composer config命令设置(如composer config notify-on-install true),用于在install/update后广播notify事件;无插件或脚本监听则无任何输出或动作。

notify-on-install 不是 URL 配置项,也不是 composer.json 字段,它只是一个布尔开关,作用是让 Composer 在 install 或 update 完成后广播 notify 事件——仅此而已。没有插件或脚本监听,它不会发邮件、弹窗、调用 webhook,也不会输出任何提示。
notify-on-install 怎么设才生效
必须用 composer config 命令设置,不能写进 composer.json:
- 当前项目生效:
composer config notify-on-install true - 全局生效(所有项目):
composer config -g notify-on-install true - 验证是否设成功:
composer config notify-on-install(应输出true)
注意:设完不等于有通知。它只触发事件,后续响应完全依赖外部代码。
为什么设了 true 却没任何反应
这是最常被忽略的链路断裂点。完整通路是:config → install/update → notify event → 插件/脚本捕获 → 执行动作。任意一环缺失都会静默失败:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行时加了
-q(quiet)或--no-scripts,事件直接跳过 - CI 环境(如 GitHub Actions)默认无 TTY,
echo类输出不显示,但事件其实已发出 -
require或remove命令不触发notify事件,只限install/update - 用了老版本 Composer(
怎么让 notify 真正“通知”出去
得靠 scripts + extra 或独立插件。例如,在 composer.json 中加一段可执行的钩子:
"scripts": {
"notify": "echo '✅ Dependencies installed'"
},
"scripts-descriptions": {
"notify": "Run after install/update"
}
再配合 composer config notify-on-install true,才能让 notify 事件触发该脚本。若想发 HTTP 请求(比如推送到 Slack),脚本里就得调用 curl 或用 PHP 写 POST;若想更健壮,建议用支持 POST_NOTIFY 事件的插件,比如自定义的 composer-plugin 实现 Composer\Script\Event::POST_NOTIFY 接口。
真正难的不是打开开关,而是确认整个事件链路中每个环节都就位——尤其是插件是否注册了正确的事件名、脚本是否在正确的作用域下被加载、以及 CI 环境是否抑制了输出。漏掉一个,就只剩无声的 true。

















