You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无网络环境下composer network upgrade命令执行失败的配置求助

解决Composer离线环境下composer network upgrade报错的问题

我来帮你搞定这个离线升级的问题!之前处理过类似的场景,核心原因是composer network upgrade默认会尝试从远程仓库(比如npm、Composer官方源)拉取依赖或验证包信息,离线环境下没网自然就报错了。咱们分几步来配置,让它完全用本地资源运行:

1. 先在联网机器上备齐所有离线资源

首先得把升级需要的所有文件提前在有网的机器上准备好,别等离线了才慌:

  • 进入你的业务网络项目根目录,生成包含所有代码和依赖的业务网络归档包(BNA):
    composer archive create -t dir -n .
    
    执行完会得到一个类似your-business-network@x.y.z.bna的文件,这个是升级的核心包。
  • 接着下载Composer的生产依赖,避免离线时缺包:
    composer install --prefer-dist --no-dev --no-scripts
    
    这会把所有必须的依赖下载到项目的vendor目录里。
  • 如果你的业务网络用到了第三方npm包,别忘了在联网机器上跑npm install,把node_modules目录也一并打包。
  • 最后把整个项目目录(包括生成的BNA包、vendor、node_modules,还有composer.lock这个关键配置文件)复制到离线的生产环境机器上。

2. 配置Composer进入纯离线模式

到了离线机器上,得告诉Composer别再试着找远程源了:

  • 全局禁用远程仓库检查,开启离线模式:
    composer config --global repo.packagist false
    composer config --global offline true
    
  • 执行升级命令时,一定要指定本地的BNA包路径,别让它自己去远程找:
    composer network upgrade -c <你的连接配置文件名> -n <业务网络名称> -V <要升级的新版本号> --archiveFile ./your-business-network@x.y.z.bna
    
    把命令里的尖括号内容换成你自己的实际信息,这样Composer就会完全用本地的归档包完成升级操作。

3. 验证离线环境的依赖完整性

复制完资源后,先确认一下本地依赖没问题:

  • 进入项目目录,执行composer install --no-dev --offline,如果没有报错,说明所有依赖都已经正确复制到位。
  • 也可以跑composer network list -c <你的连接配置>检查当前业务网络状态,确保环境是正常的。

常见坑点排查

  • 如果还是报错,先检查composer.lock、vendor、node_modules是不是都完整复制了——composer.lock是用来锁定依赖版本的,没它的话Composer可能会乱找版本。
  • 确认离线机器的Composer版本和联网机器的一致!版本不匹配很容易出依赖解析问题,用composer -V就能查看版本,要是不一样,提前在联网机器下载对应版本的Composer Phar文件复制过去安装就行。

内容的提问来源于stack exchange,提问作者Firoz Ansari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:05:14