如何设置Composer下载依赖包的具体下载策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1181个文字,预计阅读时间需要5分钟。
Composer默认会检查本地缓存是否有对应版本的包,如果没有,会尝试下载对应的dist包。但前提是它能够确认该包的dist.url有效且未被修改。一旦本地缓存失效或路径不匹配,就会回退到从网络上下载。
确保缓存命中的关键操作:
- 始终使用
--prefer-dist(默认行为,但显式加上更稳妥),避免触发source克隆逻辑 - 不要手动删掉
COMPOSER_HOME/cache/下的archival/或repo/子目录——它们各自承担不同职责,误删会导致“缓存存在却不用”的现象 - 运行
composer install -v观察日志:看到Loading from cache才算真正命中;若出现Downloading ...,说明缓存没起作用 - 私有包必须提前在
composer.json的repositories中正确定义,否则 Composer 根本不会把它的 dist 包存进缓存
如何强制所有依赖都用 zip 包安装(跳过 git clone)
有些包在 composer.lock 里记录的是 source 类型(比如你本地开发时用了 --prefer-source,或包本身没提供 dist),这会导致离线或 CI 环境下因缺 Git 而失败。
本文共计1181个文字,预计阅读时间需要5分钟。
Composer默认会检查本地缓存是否有对应版本的包,如果没有,会尝试下载对应的dist包。但前提是它能够确认该包的dist.url有效且未被修改。一旦本地缓存失效或路径不匹配,就会回退到从网络上下载。
确保缓存命中的关键操作:
- 始终使用
--prefer-dist(默认行为,但显式加上更稳妥),避免触发source克隆逻辑 - 不要手动删掉
COMPOSER_HOME/cache/下的archival/或repo/子目录——它们各自承担不同职责,误删会导致“缓存存在却不用”的现象 - 运行
composer install -v观察日志:看到Loading from cache才算真正命中;若出现Downloading ...,说明缓存没起作用 - 私有包必须提前在
composer.json的repositories中正确定义,否则 Composer 根本不会把它的 dist 包存进缓存
如何强制所有依赖都用 zip 包安装(跳过 git clone)
有些包在 composer.lock 里记录的是 source 类型(比如你本地开发时用了 --prefer-source,或包本身没提供 dist),这会导致离线或 CI 环境下因缺 Git 而失败。

