必须设composer_disable_network=1,否则即使vendor和composer.lock完整也会因请求packages.json而失败;--no-network非法无效,仅该环境变量可强制跳过所有网络操作。

必须设 COMPOSER_DISABLE_NETWORK=1,否则哪怕 vendor 目录完整、composer.lock 一字未改,也会卡在 Loading composer repositories 或报 Could not fetch https://repo.packagist.org/packages.json。
为什么设了 --no-network 还会联网?
--no-network 不是 Composer 的合法参数,官方从未实现;用户常误以为它存在,实际起作用的只有环境变量 COMPOSER_DISABLE_NETWORK=1。这个变量不是“建议禁网”,而是强制跳过所有网络触发点:元数据拉取、dist 下载、插件初始化时的远程校验。
- Linux/macOS:必须前置设置,如
COMPOSER_DISABLE_NETWORK=1 composer install --prefer-dist - Windows CMD:先执行
set COMPOSER_DISABLE_NETWORK=1,再运行命令 - PowerShell:用
$env:COMPOSER_DISABLE_NETWORK="1" -
--offline仅跳过更新逻辑,挡不住初始packages.json请求
缓存目录不全,离线就静默失败
Composer 缓存生效依赖三个子目录共存:files/(ZIP 包)、repo/(元数据 JSON)、archived/(archive 生成的归档)。只复制 files/ 是最常见错误,结果日志里仍出现 Fetching https://repo.packagist.org/packages.json——因为没 repo/,Composer 根本不知道哪个 SHA 对应哪个 ZIP。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先查真实路径:
composer config --global cache-dir(Linux/macOS 默认~/.composer/cache,Windows 是%LOCALAPPDATA%\Composer\cache) - 打包时必须包含整个缓存根目录,隐藏文件(如
.htaccess)也不能跳过 - 离线机上需同步设置:
composer config --global cache-dir /path/to/restored/cache - 确认
$(composer config --global cache-dir)/repo/https---packagist.org/packages.json存在且非空
vendor 直接拷贝比缓存更稳,但环境必须对齐
直接复制 vendor/ 目录是最稳的离线方案,前提是源机与目标机 PHP 版本(含小版本,如 8.2.12)、关键扩展(mbstring、openssl、json、curl、zip)及 Composer 版本一致。
- 源机打包前务必执行:
composer install --no-dev --optimize-autoloader - 用最小代码验证 autoload:
require 'vendor/autoload.php'; echo class_exists('Monolog\Logger') ? 'OK' : 'FAIL'; - 目标机解压后优先运行:
composer dump-autoload -o,修复 symlink 路径污染或权限问题 - 若不确定
vendor/是否干净,可用composer install --no-plugins --no-scripts --no-autoloader --dry-run(Composer 2.5+)预览校验行为
真正容易被忽略的是:即使 vendor/ 和 composer.lock 都齐全,只要 PHP 小版本不一致(比如锁文件要求 php >=8.1.10,而离线机是 8.1.9),或缺 ext-zip,composer install 就会失败——错误表现往往不是网络相关提示,而是 Class not found 或静默退出。










