解决Mitosis项目在Vite 6中JSX导入源配置问题
问题背景
在BuilderIO/mitosis项目中,当用户使用最新版本的Vite和@vitejs/plugin-react时,会遇到JSX运行时导入错误。具体表现为系统提示"Missing './jsx-dev-runtime' specifier in '@builder.io/mitosis' package"错误。
问题分析
这个问题的根源在于TypeScript配置和Vite的JSX处理方式之间的不兼容。在Mitosis项目中,默认的tsconfig.json文件配置了"jsxImportSource": "@builder.io/mitosis",这会导致Vite在解析JSX时尝试从@builder.io/mitosis包中寻找jsx-dev-runtime模块。
随着Vite 6的更新,其对JSX运行时的处理变得更加严格,而@builder.io/mitosis包并没有提供完整的JSX运行时实现,特别是缺少jsx-dev-runtime模块。
解决方案
方案一:修改Vite配置(临时方案)
可以在Vite配置中强制使用classic JSX运行时模式:
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: react({jsxRuntime: 'classic'})
});
但这种方案需要开发者在所有React组件中手动导入React,增加了开发负担。
方案二:移除jsxImportSource配置(推荐方案)
更彻底的解决方案是移除tsconfig.json中的"jsxImportSource": "@builder.io/mitosis"配置。因为Mitosis生成的React组件实际上是标准的React组件,不需要特殊的JSX导入源。
方案三:为React包添加专用tsconfig(最佳实践)
最完善的解决方案是在library/packages/react/目录下添加专用的tsconfig.json文件,明确指定JSX模式为React:
{
"compilerOptions": {
"jsx": "react"
}
}
这种方案既保持了项目的灵活性,又确保了与最新Vite版本的兼容性。
技术原理
TypeScript的jsxImportSource配置用于指定JSX工厂函数的导入源。在React 17+中,引入了新的JSX转换方式,允许不显式导入React。然而,Mitosis生成的React组件实际上是标准的React组件,不需要特殊的JSX处理。
Vite 6对JSX运行时的处理更加规范,会严格检查指定的jsxImportSource是否提供了完整的运行时实现。由于@builder.io/mitosis并不是一个完整的JSX运行时实现,因此导致了兼容性问题。
结论
对于使用Mitosis生成React组件并集成到Vite 6项目的开发者,建议采用方案三,即为React包添加专用的tsconfig配置。这样既能保持项目的整洁性,又能确保与最新工具链的兼容性。
这个问题也提醒我们,在使用代码生成工具时,需要特别注意生成代码与构建工具的兼容性,及时调整配置以适应工具链的更新。
HunyuanImage-3.0
HunyuanImage-3.0 统一多模态理解与生成,基于自回归框架,实现文本生成图像,性能媲美或超越领先闭源模型00- DDeepSeek-V3.2-ExpDeepSeek-V3.2-Exp是DeepSeek推出的实验性模型,基于V3.1-Terminus架构,创新引入DeepSeek Sparse Attention稀疏注意力机制,在保持模型输出质量的同时,大幅提升长文本场景下的训练与推理效率。该模型在MMLU-Pro、GPQA-Diamond等多领域公开基准测试中表现与V3.1-Terminus相当,支持HuggingFace、SGLang、vLLM等多种本地运行方式,开源内核设计便于研究,采用MIT许可证。【此简介由AI生成】Python00
GitCode-文心大模型-智源研究院AI应用开发大赛
GitCode&文心大模型&智源研究院强强联合,发起的AI应用开发大赛;总奖池8W,单人最高可得价值3W奖励。快来参加吧~0370Hunyuan3D-Part
腾讯混元3D-Part00ops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。C++0102AI内容魔方
AI内容专区,汇集全球AI开源项目,集结模块、可组合的内容,致力于分享、交流。02Spark-Chemistry-X1-13B
科大讯飞星火化学-X1-13B (iFLYTEK Spark Chemistry-X1-13B) 是一款专为化学领域优化的大语言模型。它由星火-X1 (Spark-X1) 基础模型微调而来,在化学知识问答、分子性质预测、化学名称转换和科学推理方面展现出强大的能力,同时保持了强大的通用语言理解与生成能力。Python00GOT-OCR-2.0-hf
阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00- HHowToCook程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese only).Dockerfile09
- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00
项目优选









