0

0

composer怎么强制使用本地缓存?

尼克

尼克

发布时间:2026-03-03 15:28:04

|

565人浏览过

|

来源于php中文网

原创

composer 离线安装核心是启用 --offline 模式,强制跳过网络请求、仅从本地缓存(~/.composer/cache/)或 vendor/ 读取包;需提前联网执行 composer install 写入缓存,确保 composer.lock 中的 exact version 和 shasum 与缓存文件匹配,私有仓库需预先配置,ci/cd 中须显式缓存并恢复 ~/.composer/cache/ 目录。

composer怎么强制使用本地缓存?

composer install 时跳过远程包下载

强制走本地缓存,本质是让 Composer 完全不碰网络,只从 vendor/~/.composer/cache/ 里找包。但注意:Composer 默认不会“自动回退到缓存”,它只在首次安装或版本变更时才下载;所谓“强制缓存”,其实是关掉网络依赖、确保离线可用。

  • --no-install 没用,那是跳过安装步骤,不是跳过下载
  • 真正起效的是 --prefer-source--prefer-dist 的组合行为——但它们不控制缓存,只控制包来源类型
  • 核心开关是 --offline:启用后 Composer 拒绝任何 HTTP 请求,找不到本地副本就直接报错,不会尝试 fallback 到 packagist

怎么提前把包塞进本地缓存

缓存不是“用了就自动变快”,而是靠 composer installcomposer update 过程中下载的包被存进 ~/.composer/cache/(Linux/macOS)或 %LOCALAPPDATA%\Composer\cache\(Windows)。想离线能用,得先联网跑一遍,且确保缓存没被清空。

多奥淘宝客程序API免费版 F8.0
多奥淘宝客程序API免费版 F8.0

多奥淘宝客程序免费版拥有淘宝客站点的基本功能,手动更新少,管理简单等优点,适合刚接触网站的淘客们,或者是兼职做淘客们。同样拥有VIP版的模板引擎技 术、强大的文件缓存机制,但没有VIP版的伪原创跟自定义URL等多项创新的搜索引擎优化技术,除此之外也是一款高效的API数据系统实现无人值守全自动 化运行的淘宝客网站程序。4月3日淘宝联盟重新开放淘宝API申请,新用户也可使用了

下载
  • 运行 composer install --no-scripts --no-dev(按需删减),触发缓存写入
  • 别手动删 ~/.composer/cache/files/ 下的 zip,那是 dist 包缓存,删了 offline 就失效
  • composer clear-cache 会清空所有,离线前务必确认没执行过
  • 如果项目用的是私有 repo,要提前用 composer config --global repositories.xxx 注册好,否则 offline 时连 repo 地址都解析不了

为什么 --offline 还是报错 “Package not found”

常见于两种情况:缓存里压根没这个包,或者包的 hash 不匹配(比如你改过 composer.lock 但没更新缓存)。Composer 的 offline 模式非常严格——它不校验“有没有类似版本”,只认 lock 文件里写的 exact version + exact hash。

  • 检查 composer.lock 里对应包的 dist.shasum 字段,再去看 ~/.composer/cache/files/[vendor]/[package]/[hash].zip 是否存在且大小非零
  • 私有包若用的是 path repository,--offline 是 OK 的,但必须确保 path 路径真实存在且可读
  • 如果用 composer require xxx 增量装包,记得加 --no-update,否则会触发网络请求去 resolve 新依赖

CI/CD 中稳定复用缓存的实操要点

在 GitHub Actions 或 GitLab CI 里想靠缓存提速,不能只靠 --offline,因为 runner 是干净环境,缓存目录默认为空。必须显式 restore + save 缓存路径。

  • 缓存路径要覆盖 ~/.composer/cache/ 全量,不是只缓存 vendor/
  • GitHub Actions 示例:composer install --no-interaction --no-progress --prefer-dist --optimize-autoloader --offline 必须放在 cache restore 之后、且前面没任何 composer update
  • GitLab CI 注意:默认镜像可能没预装 Composer,或版本太老(composer --version 确认
  • 如果项目用了 platform-checkconfig.platform,某些 PHP 扩展缺失会导致 install 卡住,这和缓存无关,但容易误判为“缓存失效”
缓存路径是否真实存在、lock 文件里的 shasum 是否与磁盘文件一致,这两点最容易被忽略。offline 模式下没有模糊匹配,差一个字符就失败。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

161

2023.12.25

require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

506

2023.11.27

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

3409

2026.01.21

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1381

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1159

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

829

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

460

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2361

2023.08.08

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

3

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第二十四期_PHP8编程
第二十四期_PHP8编程

共86课时 | 3.5万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.6万人学习

第二十三期_PHP编程
第二十三期_PHP编程

共93课时 | 7.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号