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

Symfony 5.4中如何刷新供应商依赖的资产包?

Symfony 5.4 供应商资产依赖版本不一致问题:原因与解决方法

问题原因

你遇到的版本差异是npm依赖范围的正常行为:

  • package.json里的"moment-timezone": "^0.5.32"使用了^前缀,代表npm会安装0.x.x系列中不低于0.5.32的最新兼容版本,0.5.34完全符合这个范围,所以bundle开发者发布包时,npm自动安装了该范围的最新版。
  • 供应商bundle的Resources/public目录下的依赖文件,是bundle开发者在发布前就已通过npm安装并打包好的,并非你执行composer install或assets:install时动态生成的,因此删除vendor重装不会改变这个目录里的内容。

强制刷新/重新安装供应商依赖的方法

若要让目标bundle重新安装对应版本的依赖,可按以下步骤操作:

  1. 进入目标bundle的目录:
    cd vendor/ezsystems/ezplatform-admin-ui-assets
    
  2. 清理现有依赖与锁定文件:
    rm -rf node_modules package-lock.json
    
  3. 重新安装依赖:
    • 若要遵循package.json的版本范围(仍会安装0.5.34,因为是该范围的最新版):
      npm install
      
    • 若要强制安装0.5.32精确版本:
      修改package.json中的依赖为"moment-timezone": "0.5.32",再执行:
      npm install
      
  4. 同步资产到Symfony公共目录:
    返回项目根目录执行:
    php bin/console assets:install public
    

注意事项

直接修改vendor目录的方式是临时的,下次执行composer update或composer install时,bundle会被重新下载,所有修改会丢失。如果需要长期生效,建议:

  • 向该bundle的开发者提交Issue,要求更新package-lock.json或固定依赖版本
  • 使用composer patch工具为bundle打补丁,持久化修改其package.json和依赖文件

内容的提问来源于stack exchange,提问作者Ángel Díaz de Vivar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:52:45