不用,而且必须卸载;prestissimo仅兼容composer 1.x,2.1+已原生支持并行下载,装了会触发警告、签名校验失败或临时文件错误,应执行composer global remove hirak/prestissimo。

Composer 2.x 还用不用装 Prestissimo?
不用,而且必须卸载。Prestissimo 只兼容 Composer 1.x(1.0.0–1.10.x),它通过硬改 CurlRemoteFilesystem.php 实现并发下载;Composer 2.1+ 已原生支持并行下载,再装 hirak/prestissimo 会触发警告、签名校验失败,甚至出现 file_put_contents(/tmp/): failed to open stream 这类临时文件竞争错误。
验证方式很简单:composer --version 看是否 ≥ 2.1;再执行 composer install -vvv,如果日志里出现类似 Downloading (5/23) 多个数字动态跳变,说明并行已生效。
如果之前装过,立刻运行:composer global remove hirak/prestissimo
国内镜像源怎么配才真正生效?
只执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 不够——旧缓存里的元数据仍指向 packagist.org,请求实际还是走境外。
必须紧接着清缓存:composer clear-cache
验证是否生效:composer config -g repo.packagist 输出应为对应镜像 URL,不能是 null 或空值。
常见失效点:
• 配了镜像但没清缓存
• 镜像 URL 拼错(比如漏掉末尾的 /)
• 项目级 composer.json 里写了 "repositories" 自定义源,且该源返回的包信息缺失 dist 字段,导致镜像加速失效
prefer-dist 为什么开了还慢?
prefer-dist 是提速关键开关,但它只在“包本身提供 dist”时才起效。如果某个包只定义了 source(比如私有 GitLab 仓库未配置 release),Composer 会自动回退到 clone 模式,速度毫无提升,还会报错:Could not find a matching version of package xxx。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
启用方式优先用全局配置:composer config -g prefer-dist true
注意:
• 如果项目 composer.json 的 config 段已有 "prefer-source": true,prefer-dist 不会覆盖它,必须手动删掉
• composer show vendor/package 查看输出是否有 dist 字段,没有就说明这个包不走 dist
• 它和镜像源是绑定关系:阿里云、腾讯云镜像主要缓存 dist 包,source 基本不缓存,开了镜像却没开 prefer-dist,等于白配
CI/CD 中哪些参数组合最省时间?
部署阶段别用 composer install 默认参数——autoload、脚本、dev 依赖全拉,浪费大量 I/O 和 CPU。
推荐组合(Docker 或 GitHub Actions 中直接写):composer install --no-dev --prefer-dist --no-autoloader --no-scripts
更稳妥的方式是设环境变量:COMPOSER_NO_DEV=1 COMPOSER_PREFER_DIST=1
它比命令行参数优先级高,不会被 CI 脚本意外覆盖。
额外提醒:
• --no-autoloader 后需手动运行 composer dump-autoload --optimize(仅生产环境需要)
• 并发数别盲目调高:composer config --global http-max-concurrent-downloads 10 是合理上限,设成 20 容易触发镜像站限流或本地临时目录争抢
• parallel-downloads 在新版中已被弃用,设了也不生效,只认 http-max-concurrent-downloads










