从Vaadin23迁移至Vaadin24.3.7后出现jsxDev选项无效错误
解决Vaadin24.3.7 + SpringBoot3.2.3迁移中的
jsxDev构建错误 升级SpringBoot2.7.5+Vaadin23到SpringBoot3.2.3+Vaadin24.3.7后,启动时Vite构建失败,报错transform()调用中存在无效选项:"jsxDev",这是因为Vaadin24默认使用的Vite5依赖的esbuild(v0.19+)已废弃jsxDev配置项,改用jsx: "dev"替代。以下是具体解决步骤:
清理并重建前端依赖
删除项目根目录的node_modules、package-lock.json文件,执行以下Maven命令让Vaadin重新生成正确的前端配置:mvn vaadin:clean-frontend mvn vaadin:prepare-frontend修正Service Worker中的esbuild配置
打开target/sw.ts或项目自定义的Service Worker文件,查找传递jsxDev参数的代码,将其替换为jsx: "dev":
原错误代码:esbuild.transform(code, { jsxDev: true })修改后:
esbuild.transform(code, { jsx: "dev" })更新自定义前端插件
如果项目使用了自定义Vaadin前端插件或第三方插件,确保它们已适配Vite5和最新esbuild版本,升级到兼容版本。手动指定兼容esbuild版本(临时方案)
若以上方法无效,在package.json中强制指定esbuild版本:"devDependencies": { "esbuild": "^0.19.11" }执行
npm install后重新构建项目。
完成上述步骤后,执行mvn clean spring-boot:run验证应用是否能正常启动。
内容的提问来源于stack exchange,提问作者Marco77
相关产品推荐
相关产品推荐

