composer 2.1+ 已原生支持并行下载,hirak/prestissimo 插件失效且可能引发临时文件错误或签名校验失败;应卸载该插件、换用国内镜像源(如阿里云)、清缓存,并仅调整 http-max-concurrent-downloads 参数。

Composer 2.1+ 别装 hirak/prestissimo,它已失效且可能出错
你装了 hirak/prestissimo 却没提速?不是你操作错,是它根本没在运行——Composer 2.1+ 已原生支持并行下载,插件被自动忽略或静默禁用。更糟的是,它可能引发 file_put_contents(/tmp/): failed to open stream 这类临时文件竞争错误,或导致签名校验失败、composer.lock 结构异常。
- 确认版本:
composer --version,若低于2.1,先执行composer self-update - 检查是否残留:
composer global show里若还显示hirak/prestissimo,立刻卸载:composer global remove hirak/prestissimo - 验证是否真生效:跑一次
composer install -vvv,看到类似Downloading (7/42)多个数字动态跳变,才是并行在跑;纯逐行输出说明仍串行
换国内镜像源才是提速关键,否则并行也白搭
并行只是“同时发请求”,但若目标服务器是海外的 packagist.org,DNS 解析慢、TLS 握手卡顿、CDN 路由绕行,所有并发请求会集体堵在连接阶段,实际比单线程还慢。
- 全局配置阿里云镜像(最稳):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 南方用户可试腾讯云:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ - 换源后必须清缓存:
composer clear-cache,否则旧元数据仍回源请求 - 验证是否生效:
composer config -g repo.packagist输出应为对应 URL,不是null或空值
http-max-concurrent-downloads 是唯一该调的并发参数
别再找什么“隐藏参数”或折腾 parallel-downloads(新版已弃用)。Composer 2.2+ 唯一有效、受控的下载并发配置项只有 http-max-concurrent-downloads,它只影响 install,对 update 效果有限。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 默认值通常是
3~6,设为8~10较稳妥:composer config --global http-max-concurrent-downloads 10 - 设太高(如
20)反而触发镜像站限流、本地 I/O 瓶颈或临时目录争抢,报错如Unable to create temporary file -
composer config -g repos.packagist.org.concurrent是部分旧版 2.x 的兼容写法,非通用,优先用前者
CI/部署时加 --no-autoloader 和 --no-scripts 真省时间
开发时需要自动生成 autoload 和执行脚本,但 CI 构建或生产部署时,这些全是冗余开销。跳过它们能省下约 30% 时间,且不破坏功能。
- 推荐组合:
composer install --no-dev --prefer-dist --no-autoloader --no-scripts -
--no-autoloader跳过vendor/autoload.php生成(后续可用composer dump-autoload补) -
--no-scripts避开post-install-cmd等钩子(如 Laravel 的storage:link),这些应在部署脚本中显式控制 - 注意:
--classmap-authoritative虽快,但本地开发慎用,否则新增类直接Class not found
真正卡住安装的,从来不是“要不要并发”,而是“连不上源”和“缓存没清干净”。很多人调了半天 http-max-concurrent-downloads,却忘了 composer clear-cache 这一行,结果所有优化都在旧缓存上打滑。










