离线安装必须设composer_disable_network=1,否则所有--no-xxx参数无效;需同时全局禁用packagist、用path仓库添加本地包,并执行composer install --no-interaction --no-plugins --no-scripts --no-autoloader --no-dev --optimize-autoloader后补dump-autoload -o。

离线安装必须设 COMPOSER_DISABLE_NETWORK=1
不加这个环境变量,所有 --no-xxx 参数都无效。Composer 会在 install 阶段主动请求 https://repo.packagist.org/packages.json,哪怕 vendor/ 已存在、composer.lock 完整,也会直接报错 Could not fetch。设了之后,它才真正跳过元数据拉取环节。
常见错误现象:Connection refused 或卡在 Downloading;即使你已断网,只要没设该变量,Composer 仍会尝试连接。
- Linux/macOS:运行前执行
export COMPOSER_DISABLE_NETWORK=1 - Windows CMD:
set COMPOSER_DISABLE_NETWORK=1 - Windows PowerShell:
$env:COMPOSER_DISABLE_NETWORK="1" - 建议写进部署脚本开头,避免遗漏
composer.json 里禁用 Packagist 是硬性操作
仅靠环境变量还不够。如果 composer.json 里保留默认的 Packagist 源(或通过全局 config 启用了),COMPOSER_DISABLE_NETWORK=1 下 Composer 会直接退出,而不是静默忽略。
必须显式关闭它:
- 项目级:运行
composer config repositories.packagist false(修改当前项目的composer.json) - 全局级(推荐):运行
composer config --global repo.packagist false,一劳永逸 - 验证是否生效:
composer config --list | grep packagist应返回repo.packagist false
注意:如果 composer.json 中手动写了 "repositories": [{"type": "packagist", "url": false}],COMPOSER_DISABLE_NETWORK=1 下也会立即失败——必须删掉或改用 false 值。
新增包只能走 path 仓库,不能 require
composer require 默认必须联网查包名、版本、约束兼容性,离线时必然失败。唯一可行路径是把本地目录注册为 path 类型仓库。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
操作分两步,缺一不可:
- 在项目
composer.json的repositories字段中添加:{"type": "path", "url": "./packages/my-lib"}(注意:Windows 要用绝对路径如C:/projects/my-lib) - 本地包根目录下必须有合法
composer.json,含"name"和"version"(如"version": "dev-main"),不能只是源码文件夹 - 再运行
composer require my-vendor/my-lib:dev-main(版本号必须和本地包一致)
容易踩的坑:path 包默认以 symlink 方式链接进 vendor/,若目标机不支持软链(如某些 Windows 环境或容器挂载),需额外加 --prefer-source 或提前确认 composer.json 中 "options": {"symlink": false}。
composer install 必须带全套 --no- 参数
即使 vendor/ 已复制到位、composer.lock 未改动,不加参数仍可能触发插件、脚本或 autoload 重建导致失败。
最稳命令是:
COMPOSER_DISABLE_NETWORK=1 composer install --no-interaction --no-plugins --no-scripts --no-autoloader --no-dev --optimize-autoloader
关键点解释:
-
--no-plugins:禁用hirak/prestissimo等插件,它们可能隐式联网或写缓存 -
--no-scripts:跳过post-install-cmd,防止执行npm install或生成前端资源等外部调用 -
--no-autoloader:绕过 autoload.php 重建(某些自定义 autoloader 会触发远程类查找) - 执行完必须立刻补一记:
composer dump-autoload -o,否则运行时大概率Class not found
别省这一步——dump-autoload -o 不联网,只读本地 vendor/,是离线部署最后也是最关键的收尾动作。










