You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony项目推送Heroku失败提示WebpackEncoreBundle类未找到如何解决

问题原因

  • 依赖安装规则不匹配:symfony/webpack-encore-bundle被放在composer.json的require-dev区块中,Heroku 部署生产环境时默认执行composer install --no-dev,会跳过所有开发依赖的安装,生产环境不存在该包的代码文件。
  • Bundle 加载规则冲突:你在config/bundles.php中配置 WebpackEncoreBundle 的启用规则为['all' => true],要求所有环境(包括生产环境)都加载该 Bundle,生产环境找不到对应类就会触发致命错误,导致缓存清理失败。

解决方案

根据你的生产环境使用需求选择任意一种即可:

方案1:生产环境需要使用 WebpackEncoreBundle

将该依赖从开发依赖移动到生产依赖:

  1. 本地执行命令composer require symfony/webpack-encore-bundle
  2. 提交更新后的composer.json和composer.lock文件,重新推送至 Heroku 部署即可。

方案2:生产环境不需要使用 WebpackEncoreBundle

修改config/bundles.php中 WebpackEncoreBundle 的加载规则,仅在开发/测试环境启用:

Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['dev' => true, 'test' => true],

提交修改后的文件重新部署即可。

额外注意项

确保你每次修改composer.json后都同步提交了composer.lock文件,Heroku 部署时优先读取composer.lock的依赖版本信息,未同步提交会导致依赖安装不符合预期。

内容的提问来源于stack exchange,提问作者Pax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:15:04