离线机无法直接使用 composer create-project,必须先在联网机执行 composer install 完成依赖下载并打包 vendor 目录,再迁移至离线机,最后运行 composer dump-autoload -o 补全自动加载。

离线机上不能用 composer create-project
这个命令从设计上就强制联网:它先要访问 https://repo.packagist.org/packages.json 解析模板项目(如 topthink/think)的元信息,再执行 git clone 或下载 ZIP。哪怕你把 composer.phar、composer.lock 全拷过去,第一步仍会失败,报错典型为:Could not fetch https://repo.packagist.org/packages.json 或 Package xxx not found。COMPOSER_DISABLE_NETWORK=1 和 --offline 对它完全无效。
必须分步构建:联网机准备 + 离线机补全
可行路径只有一条:在能联网的机器上完成全部依赖解析与下载,再整体迁移。关键步骤如下:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 在联网机上用
git clone或解压官方 ZIP 获取干净骨架(如topthink/think),删掉原composer.lock(防锁死远程地址) - 进目录后运行:
composer install --no-dev --prefer-dist --no-scripts --no-plugins --optimize-autoloader,确保vendor/完整且不含运行时脚本 - 打包整个目录(含
vendor/、composer.lock、composer.json),拷入离线机 - 离线机上先清全局缓存:
composer config --global cache-dir /dev/null,再执行:COMPOSER_DISABLE_NETWORK=1 composer install --no-plugins --no-scripts --no-autoloader - 最后必须补一记:
composer dump-autoload -o,否则大概率报Class not found
离线机 composer install 还报错?检查这三点
常见静默失败点不是命令写错,而是环境或残留配置干扰:
-
vendor/权限问题:Linux/macOS 下若目录权限是777,某些 PHP 配置会拒绝加载;应统一设为755(目录)、644(PHP 文件) - PHP 版本不匹配:如果联网机构建时用的是 PHP 8.2,而离线机是 PHP 7.4,
vendor/中可能含match、??=等语法错误,直接 fatal error;需确保两机 PHP 主版本一致 - 项目级
repositories覆盖了离线意图:若composer.json里有"repositories": [{"type": "composer", "url": "https://packagist.org"}],Composer 2.2+ 会尝试兜底查镜像——但离线时这一步必挂;应手动删掉或设为"repositories": {"packagist.org": false}
别信“本地 path 源”能替代初始化
有人试过在离线机 composer.json 里加 "repositories": [{"type": "path", "url": "./packages"}],以为能绕过网络。这是误解:path 类型只适用于你已有的本地代码包(比如自己写的 my-utils),它不提供项目骨架、不生成 autoload、也不处理 create-project 那套初始化逻辑。想用它装 monolog/monolog?不可能。

















