notify-on-install 并不存在于 composer 中,它既非内置功能也未在源码或文档中定义;真实可用的通知机制仅有 scripts 下的 post-install-cmd,需手动配置具体命令实现安装后动作。

notify-on-install 不是 Composer 内置功能,也没有任何反馈机制——它根本不存在于 Composer 源码、文档或配置项中。
为什么你搜不到 notify-on-install 的文档或示例
Composer 官方配置项列表(composer.json schema)里从无此字段;2.x 和 3.x 所有版本的源码中也未定义该 key。常见误来源有:
- 把第三方插件(如
composer-notify)的自定义配置名当成 Composer 原生命令 - 混淆了 Packagist 的 webhook 设置(
packagist.org→ package → “Webhooks” tab)和本地安装行为 - 看到别人在
scripts里写了post-install-cmd,误以为那是notify-on-install
post-install-cmd 是唯一可落地的通知入口
如果你真需要安装后触发动作(比如发 Slack 消息、记录日志、校验签名),必须靠 scripts 配置:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
{
"scripts": {
"post-install-cmd": [
"@php -r "file_put_contents('install.log', date('c') . ' installed\n', FILE_APPEND);"",
"curl -X POST -H 'Content-type: application/json' --data '{"text":"Install done"}' https://hooks.slack.com/services/..."
]
}
}
注意:
- 该脚本只在
composer install或composer update成功完成时执行,不区分首次安装还是重装 - 若命令失败(如 curl 超时),Composer 默认继续,除非加
"stop-on-failure": true - 脚本运行环境受限:无法访问
$COMPOSER_HOME外的全局状态,也不感知哪些包是“新装”的
想统计“谁在什么时候装了什么包”,得换思路
Composer 本身不记录安装事件日志,composer.lock 只存结果,不存过程。可行路径只有:
- 用
composer install --profile -v 2>&1 | tee install.log保存完整执行流,再 grep 包名和时间戳 - 在 CI 环境中,靠 runner 日志 +
composer show --tree快照比对前后差异 - 监听
vendor/目录 inotify/fswatch 事件(仅限 Linux/macOS,不可靠,易漏)
别指望靠一个虚构的配置项实现可观测性——真实场景里,通知和统计都得自己搭链路,Composer 只负责把包放进去。










