【发布时间】:2025-12-17 10:05:01
【问题描述】:
我正在尝试使用 Composer 更新单个包而不更新任何依赖项。
我运行这个:
composer update -vv {package_name}
其中{package_name} 是私有存储库 (git repo) 中的包,其中包含具有 零 依赖项的 composer.json。
但是,当我运行它时,它在Updating dependencies 上挂了很长时间,然后报告:
Analyzed 18068 packages to resolve dependencies
Analyzed 451772 rules to resolve dependencies
如何让 Composer 停止这样做?我想更新 {package_name} 并重新创建自动加载文件,但不更新任何依赖项。我检查了options in the documentation,但没有看到我要查找的内容。
(说清楚,我这里主要关心速度,我想快速更新我的包)
【问题讨论】:
-
如果您不想更新这些资源,您可以随时为这些资源放置一个固定版本。
-
我认为不可能。现在 Composer 在任何更新命令之前刷新并加载所有包信息(您可以使用
-vvv开关查看发生了什么),这可能是您的主要瓶颈。尽管在您的情况下可以跳过这一步,但我怀疑有人会将 Composer 代码复杂化以处理此类异常。 -
但是如果你真的需要它并且你确定更新这个包不会触及其他任何东西,你可以编写自己的脚本来替换
composer.lock中的提交哈希,然后调用composer install- 这是 hack,但应该适用于您的情况。
标签: php composer-php