该事件仅在Composer从源安装包时触发,发生在克隆、检出或解压前,用于动态修改源信息、预检依赖兼容性及动态生成源码内容。

这个事件在 Composer 安装或更新包之前触发,但仅限于从源(source)安装时,也就是当包被克隆、检出或解压前执行。它不适用于从 dist(压缩包)安装的场景,这点很关键。
比如你想统一修改某个包的 Git 仓库地址、切换分支、或跳过某些子模块拉取,可以在该事件里动态调整 $event->getOperation()->getPackage() 返回的包对象的 source 信息(如 url、reference、type)。
"no-dev": true 或手动清除 source['options']['submodules']
在真正拉代码前检查当前环境是否满足该包的构建前提,比如 PHP 扩展、系统命令或最低 Git 版本。
protoc,否则提前报错,避免下载完再失败mbstring 是否启用,不满足就中断安装并提示extra.pre-install-check 配置,执行自定义校验逻辑适用于需要在检出前注入配置、打补丁、或替换占位符的场景(注意:不能改 dist 包)。
{{APP_ENV}} 替换为当前环境变量值composer.json 中的 extra.patch-on-source 自动应用本地 patchVERSION 文件,内容来自当前 Git tag 或 CI 变量基本上就这些。它不是万能钩子,用对时机才能起效——核心记住两点:只作用于 source 安装;发生在任何文件写入磁盘之前。
以上就是Composer 的 pre-package-install 事件可以用来做什么?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号