启用Travis CI缓存可显著提升Composer构建速度,首先在.travis.yml中添加cache: directories: - $HOME/.composer/cache以缓存下载包;接着使用composer install --no-interaction --prefer-dist --optimize-autoloader确保高效安装;避免缓存vendor目录,防止环境兼容性问题;当依赖异常时可通过Travis界面清除缓存。正确配置后构建时间通常减少50%以上。

Travis CI 是早期广泛使用的持续集成工具之一,尤其在 PHP 项目中,配合 Composer 管理依赖非常常见。由于每次构建都从远程拉取依赖会耗费大量时间,启用 Composer 缓存能显著提升构建速度。以下是配置缓存的具体方法。
启用 Travis CI 的缓存功能
Travis CI 支持对指定目录进行缓存,Composer 的依赖包默认安装在 vendor 目录,而下载的归档包则存储在 Composer 的全局缓存目录中。为了最大化加速效果,应缓存 Composer 的包缓存路径,而不是 vendor 目录本身。
在项目根目录的 .travis.yml 文件中添加缓存配置:
cache:
directories:
- $HOME/.composer/cache
该路径是 Composer 存放下载的 zip 包的位置。缓存此目录后,相同版本的包不会重复下载,极大减少网络请求和解压时间。
配置 composer install 使用缓存优化
确保在构建脚本中正确执行 composer install,并避免清除缓存。推荐使用以下命令组合:
install: - composer install --no-interaction --prefer-dist --optimize-autoloader
- --prefer-dist:优先使用 dist(压缩包)方式安装,有利于利用缓存
- --no-interaction:非交互模式,适合 CI 环境
- --optimize-autoloader:优化自动加载,提升运行时性能
不建议使用 --no-cache 或在脚本中清除 Composer 缓存。
注意缓存失效与清理
Travis 的缓存基于文件路径和内容哈希,当 composer.lock 文件未改变时,依赖包不会重新下载。但如果 composer.json 或 composer.lock 发生变更,Travis 会自动识别并重建缓存。
若遇到依赖异常,可手动清空 Travis 中的缓存:
- 登录 Travis CI 网站
- 进入项目设置
- 找到 "Caches" 选项并点击 "Clear Cache"
排除 vendor 目录的缓存
不要缓存 vendor 目录本身。因为不同 PHP 版本或扩展环境下生成的文件可能不兼容,容易导致构建异常。正确的做法是只缓存 Composer 下载的包数据,每次通过 composer install 重新生成 vendor 内容。
基本上就这些。合理配置缓存后,Travis CI 中的 Composer 构建时间通常能减少 50% 以上,尤其对依赖较多的 Laravel 或 Symfony 项目效果明显。不复杂但容易忽略。










