启用缓存、使用国内镜像、优化安装参数并提交composer.lock,可显著提升GitHub Actions中Composer的执行速度。

GitHub Actions 中运行 Composer 时速度慢,通常是因为每次都要重新下载依赖、未启用缓存或镜像源较远。通过合理配置缓存和使用国内/快速镜像,可以显著提升执行效率。
启用 Composer 缓存
Composer 安装依赖时会生成大量本地缓存文件,如果每次工作流都重新下载,会浪费大量时间。利用 GitHub Actions 的缓存功能,可将 Composer 的缓存目录(~/.composer/cache)保存下来供后续复用。
示例配置:
- name: Cache Composer dependencies uses: actions/cache@v4 with: path: ~/.composer/cache key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: | ${{ runner.os }}-composer-
这一步会在命中缓存时跳过大量远程下载,极大缩短 composer install 时间。
使用国内或快速镜像源
默认的 Packagist 源在国外,访问较慢。切换为国内镜像(如阿里云、Laravel China)或公共加速源能有效提升下载速度。
在工作流中添加镜像设置命令:
- name: Set Composer mirror run: composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/
推荐使用阿里云镜像,稳定且速度快。你也可以替换为其他可信镜像源。
合并命令并优化安装参数
减少步骤交互开销,同时使用 Composer 的优化参数,加快自动加载和跳过开发依赖(如非必要)。
例如在生产或测试场景中:
- name: Install dependencies run: | composer config autoloader-suffix $(date +%s) composer install --no-progress --no-scripts --no-dev --prefer-dist --optimize-autoloader
- –no-dev:跳过开发依赖,适合 CI 构建
- –prefer-dist:优先使用压缩包而非 Git 克隆
- –optimize-autoloader:生成更高效的类映射
- –no-scripts:避免执行 post-install 脚本,提升安全性与速度
锁定依赖版本并提交 composer.lock
确保 composer.lock 文件提交到仓库。这样 composer install 会直接按锁文件安装,不再分析最新兼容版本,大幅减少计算时间。
如果没有 lock 文件,Composer 需要重新解析所有依赖关系,耗时显著增加。
基本上就这些。合理使用缓存、镜像和安装参数,Composer 在 GitHub Actions 中的速度可以提升数倍,常见任务从几十秒降到几秒。不复杂但容易忽略。
laravel js git json composer github 阿里云 镜像源 laravel composer github git


