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

Vaadin 23启动报Cannot find module './theme'错误咨询

Vaadin 23 启动TS2307、模块解析失败、InjectManifest重复告警问题修复

问题根因

  • 构建任务竞态:frontend/generated目录下的vaadin.ts、theme相关文件、generated-flow-imports均由Vaadin Maven插件在构建阶段动态生成。如果TS编译进程启动早于文件生成完成,就会触发TS2307找不到模块、路径解析失败的错误,这也是问题随机消失又复现的核心原因——没有固定构建顺序时,任务执行快慢会直接决定是否报错。
  • InjectManifest重复调用告警:要么是项目中重复引入了PWA相关依赖,要么是自定义前端配置中手动添加了Workbox的InjectManifest逻辑,和Vaadin内置的Service Worker生成逻辑冲突;小概率是旧缓存中残留多版本Workbox配置导致重复执行。
  • 缓存清理不彻底:仅删除项目内node_modules、target目录无法清除Vaadin存在用户目录下的全局前端依赖缓存,跨版本升级时旧缓存和新框架的生成逻辑不兼容,也会持续触发解析错误。

可落地修复步骤

  1. 全量清理所有层级缓存
    先终止所有运行中的Java进程、Vaadin开发服务,依次执行以下操作:
    # 清理项目构建产物
    mvn clean
    # 删除项目内前端依赖、锁文件、生成的前端代码
    rm -rf node_modules package-lock.json pnpm-lock.yaml frontend/generated
    # 清理Vaadin全局缓存(Windows系统直接删除当前用户目录下的.vaadin文件夹即可)
    rm -rf ~/.vaadin
    
  2. 排查重复配置问题
    • 打开项目pom.xml,检查是否单独引入了vaadin-pwa依赖,Vaadin 23的官方starter已经默认集成PWA能力,多余的单独依赖直接删除。
    • 如果项目存在自定义的Vite/Webpack配置,检查是否手动添加了InjectManifest插件配置,和Vaadin内置逻辑重复的配置直接移除。
  3. 固定构建顺序,彻底解决竞态问题
    在pom.xml中找到Vaadin Maven插件的配置块,显式绑定插件目标到Maven生命周期的早期阶段,确保所有前端生成文件在TS编译、服务启动前全部生成完成,配置参考:
    <plugin>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-maven-plugin</artifactId>
        <version>23.0.11</version>
        <executions>
            <execution>
                <phase>process-resources</phase>
                <goals>
                    <goal>prepare-frontend</goal>
                    <goal>build-frontend</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    
  4. IDE配置修正(使用IntelliJ IDEA的用户必做)
    打开IDE设置,找到Build, Execution, Deployment > Build Tools > Maven > Runner,勾选Delegate IDE build/run actions to Maven,避免IDE自带的增量编译跳过Vaadin的前端文件生成步骤。
  5. 重新构建启动
    不要直接启动服务,先执行资源生成阶段命令,再启动项目:
    mvn process-resources
    mvn spring-boot:run
    

按以上步骤操作后,不会再出现随机复现的模块找不到错误,InjectManifest重复调用的告警也会同步消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:12:14