Shopware项目中Composer执行报错问题求助
Shopware项目Composer安装/更新报错解决方案
问题原因
- composer.json被手动编辑或代码合并时产生冲突,导致依赖约束与composer.lock完全不一致,核心依赖
shopware/core未在锁文件中记录 phpunit/phpunit的版本约束更新为~9.5.17,但锁文件仍保留旧版本9.5.2,版本不匹配- 删除锁文件后执行更新时,
post-update-cmd阶段的recovery组件安装脚本报错,导致更新流程中断
解决步骤
清理旧依赖与缓存
- 删除整个vendor目录:
# Linux/macOS rm -rf vendor # Windows rmdir /s vendor - 删除composer.lock文件:
rm composer.lock - 清理Composer本地缓存:
composer clear-cache
- 删除整个vendor目录:
跳过脚本执行完成依赖更新
先绕过报错的post-update-cmd脚本,完成基础依赖的同步:composer update --no-scripts手动处理recovery组件依赖
单独安装recovery目录的依赖,避免触发全局脚本:composer install --working-dir vendor/shopware/recovery --no-interaction --no-scripts执行完整更新(可选)
依赖同步完成后,重新执行正常更新命令,验证所有流程正常:composer update
后续预防措施
- 禁止手动编辑composer.json,添加或修改依赖时使用
composer require/composer require-dev命令,让Composer自动维护锁文件 - 合并代码时重点检查composer.json和composer.lock的冲突,确保依赖约束与版本记录一致
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

