Skip to content

更新日志

vureact 遵循 Semantic Versioning 2.0.0 语义化版本规范,版本按时间倒序排列。

v1.8.5 (2026-05-27)

🐞 修复问题

  • 修复 provide() 内部使用如 computed() 等可映射的 API 时,会漏转为 React 产物 #46
  • 修复无模板组件中使用 provide 后,生成的 React jsx 丢失 <Provider> 组件 #51

v1.8.4 (2026-05-25)

🐞 修复问题

  • 修复模板修饰符事件没有表达式时,模板解析直接崩溃 #43
  • 修复 <slot> 搭配 v-else 时,slot props 解析崩溃 #44
  • 修复 JSX children 构建对异常 children 形态缺乏容错 #45
  • 修复 Vue 类型的 import 在编译后被移除,但代码中对应类型引用未移除,导致 TS 类型错误 #47
  • 修复在依赖分析中(如 watchEffect),对代码中的混合了可选链的对象访问,未添加可选链保护导致崩溃的问题 #48
  • 修复编译器在处理模板特殊事件时,生成了错误的运行时方法 dir.On,导致页面奔溃的问题 #49

v1.8.3 (2026-05-15)

🐞 修复问题

  • 修复 watch 模式改回初始内容后 React 端未触发热更新的问题:优化缓存校验,文件恢复初始状态时能正确识别变化并同步产物
  • 移除组件名文件名回退的多余警告:未显式声明名称时按文件名推导组件名属于正常兜底,不再输出 warning 日志

v1.8.1 (2026-05-14)

🐞 修复问题

  • 修复增量编译时部分缓存数据丢失的问题:优化缓存持久化逻辑,确保增量编译场景下数据完整保存

v1.8.0 (2026-05-05)

🚀 优化改进

  • 优化文件扫描效率:编译期间只扫描一次源文件,各编译阶段共享扫描结果,避免重复遍历目录
  • 优化缓存读写性能:重构缓存读写机制,编译期间只读写一次缓存文件,避免重复 I/O 操作,全量编译速度提升约 30-40%
  • 优化缓存清理逻辑:不再每次清理时重复读写磁盘,改为内存操作,避免缓存数据不同步
  • 优化终端输出体验:统一的步骤化进度提示,编译完成后显示后续操作指引及 GitHub star 请求

🐞 修复问题

  • 修复关闭编译缓存后,全量编译会删除工作区目录的问题:优化清理逻辑,只删除缓存文件本身,避免输出文件与 Vite 运行环境被清空
  • 修复 CLI 启动时包版本更新检查不生效的问题:修正更新检查逻辑,确保启动时正确检测并提示新版本

♻️ 移除

  • 移除单次编译中的重复文件扫描和缓存读写:改为统一在编译开始和结束后一次完成,各编译阶段共享结果

v1.7.0 (2026-04-26)

✨ 新增功能

  • 新增 :deep() 穿透选择器转换支持,覆盖多参数、嵌套等复杂场景,样式可穿透至子组件
  • 新增 :slotted() 插槽选择器转换支持,样式作用域精确作用于插槽内容
  • 新增 :global() 全局选择器转换支持,允许在 scoped 样式中声明全局样式规则

🐞 修复问题

  • 修复 scoped 样式 data-css-* 属性未全面覆盖组件 DOM 元素的问题
  • 修复 CSS hash 属性错误作用于伪类/伪元素/属性选择器导致样式失效的问题
  • 修复文件 ID 不存在时无默认值的问题
  • 修复顶层变量被 useMemo 优化后,未从 React 中导入该 Hook 的问题
  • 修复 v-on 需包裹函数的识别与转换处理有误的问题
  • 修复组件 props 未作为 Hook 依赖项收集的问题

🚀 优化改进

  • 优化 CSS 选择器解析算法,增强复杂 CSS 选择器场景的兼容性
  • 重构 emit 调用传入的事件名为动态表达式时,转换为使用计算属性访问并输出警告信息
  • 重构依赖分析器模块,拆分为多个子模块,提升代码组织性与可维护性
  • 重构 scoped 样式处理为模块化架构,拆分为多个子模块,提升可维护性与扩展性

v1.6.2 (2026-04-21)

🐞 修复问题

  • 修复 <template> 多子元素时 :key 处理异常,新增明确警告提示
  • 修复 :key 被错误添加到 <template>/<slot> 等不支持节点的问题

🚀 优化改进

  • 升级运行时适配包至最新版本,保证版本统一

v1.6.1 (2026-04-17)

🚀 优化改进

  • 简化 defineAsyncComponent 预处理逻辑,仅检查不支持的 hydrate 选项
  • 添加 defineAsyncComponent 到适配器映射

v1.6.0 (2026-04-13)

✨ 新增功能

  • 新增 SFC 元数据收集:解析阶段收集 props、emits、options 元数据
  • 新增 useAttrs 转换:Vue useAttrs() 转 React props,TS 环境自动断言为 Record 类型,隔离原有 props 类型提示
  • 新增 TS 交叉类型支持:使用 useAttrs 时自动为 props 追加 Record 交叉类型,保证类型完整

🐞 修复问题

  • 修复 import 注入与顶部注释位置冲突,对齐注释与导入语句
  • 修复带特定指令的 <template> 节点错误迁移问题
  • 修复 <template> 节点 :key 未正确转移到首个子节点问题
  • 修复 SFC 顶层 TS 类型声明中函数字段被误转为 ReactNode 问题

🚀 优化改进

  • 重构脚本元数据收集逻辑,模块化提升可维护性与扩展性

v1.5.2 (2026-04-08)

🐞 修复问题

  • 传统 <script> 语法转换不完整导致产物不可运行:调整为编译期直接抛出清晰错误

🚀 优化改进

  • 移除传统语法的残缺处理逻辑,避免运行时错误

v1.5.1 (2026-04-04)

🐞 修复问题

  • 产物代码注释位置混乱:优化代码生成逻辑,对齐注释位置
  • Babel minified 关闭后 import 模块名丢失引号:调整 Babel 配置处理逻辑
  • 非 const 简单字面量被静态提升:优化静态提升判定逻辑
  • 顶部 import 注入与注释位置冲突:调整导入注入逻辑兼容现有注释

🚀 优化改进

  • 移除产物中无用的 @vr 特殊注释
  • 脚本产物默认不压缩,保留可读性

v1.5.0 (2026-03-30)

✨ 新增功能

  • output.packageJson 配置项:支持自定义产物 package.json 内容

🐞 修复问题

  • 事件名未规范化、事件处理函数包裹异常:统一事件名格式与处理逻辑
  • 非 SFC 脚本文件错误改写 slot 顶层类型:优化类型处理范围判定
  • 脚本文件错误注入 React.memo/dir 工具包导入:精准控制导入注入逻辑
  • Vite 初始化失败但进程未退出:完善错误处理与进程退出机制
  • Vue API 识别冲突(同名局部变量):优化 API 识别逻辑
  • HTML 动态属性处理异常(字符串值/ data-* 格式/模板字面量):修复属性值转换逻辑

🚀 优化改进

  • 移除 SFC style 块 @import 警告
  • 不支持的 Vue API 抛出明确错误提示
  • Vue 导入类型接口统一替换为 any,简化类型处理
  • 优化运行时 import 注入逻辑,提升编译效率
  • vue-router 导入映射为 @vureact-router 并保留类型导入
  • 升级运行时适配包版本,同步编译器版本
  • 优化作用域样式 ID 注入,避免无样式元素注入 scopeId

v1.4.0 (2026-03-22)

✨ 新增功能

  • React 产物入口自动注入路由提供器
  • 基于 proper-lockfile 实现跨进程文件锁,解决并发编译数据混乱
  • bootstrapVite 支持指定 Vite/React 版本
  • 全量编译失败自动清理工作区产物
  • 支持 ts 格式配置文件(vureact.config.ts),提供类型提示
  • 批量缓存更新/清理功能
  • SetupManager 架构:重构编译器管理器依赖注入逻辑
  • 配置加载器/合并器:分离加载逻辑,支持灵活合并策略

🐞 修复问题

  • 未初始化 Vite 导致构建失败:完善 Vite 初始化流程与错误处理
  • useMemo 优化的顶层变量依赖收集不精确/未识别:精准收集引用的根变量
  • CLI 选项覆盖用户配置:调整配置合并策略,仅覆盖路径相关配置
  • 首次编译 JSON 解析报错:优化缓存文件读取与错误恢复
  • 并发编译文件操作冲突:通过文件锁保证数据一致性
  • 全量编译缓存丢失导致增量编译失效:优化缓存持久化逻辑
  • 关闭 Vite 初始化未创建工作区目录:强制保证目录创建
  • 静态资产拷贝无缓存优化/统计异常:优化资产管理缓存与统计逻辑
  • 删除样式文件后产物/缓存未清理:完善清理管理器逻辑

🚀 优化改进

  • 外部 import/函数内部依赖收集优化:减少无效依赖收集,提升编译性能
  • 对象访问依赖添加可选链保护,避免运行时空值报错
  • CLI 精简为仅保留路径相关选项
  • 优化全量编译 CLI 统计输出格式
  • 依赖分析器重构:优化路由配置,减少不必要的 useCallback 包装
  • 编译器架构模块化:引入函数式配置,提升可维护性

♻️ 移除

  • 自动输出路由适配指南功能
  • CLI 行为相关配置选项
  • 编译器 templates 目录(路由配置模板)
  • 代码中冗余注释,简化文档

v1.3.0 (2026-03-17)

✨ 新增功能

  • CLI 启动时自动检查版本更新(依赖 update-notifier)
  • 路由配置自动生成使用指南

🐞 修复问题

  • v-for 中 ref 访问未自动添加 .value:补充 ref 访问后缀处理
  • 事件调用未做可选调用:统一改为 onClick?.() 形式
  • 依赖分析可选链保护缺失:补充 ref.value 访问保护
  • 缓存存储样式源码导致体积过大:移除缓存中样式源码
  • CLI 构建未正确注入 shebang:修复构建配置

🚀 优化改进

  • 示例项目结构精简,移除旧示例
  • 更新 README/FAQ 文档,优化内容与排版
  • 编译管线流程优化:改进错误处理与进度展示

v1.2.1 (2026-03-15)

🐞 修复问题

  • provide 转换异常:优化 Provider 组件属性处理逻辑
  • 事件调用未做可选处理:统一改为可选调用形式
  • v-model 事件名生成错误:修复事件名转换逻辑
  • template/slot 节点错误注入 scopeId:调整作用域样式注入范围
  • 插槽作用域参数类型定义异常:支持含连字符等特殊字段
  • ReactNode 类型导入缺失 type 修饰符:补充类型导入修饰符
  • Vue Router 历史模式 API 适配错误:修正映射关系
  • emit 事件名格式化异常:支持 update:xxx -> onUpdateXxx 转换
  • provide 处理顺序错误:调整收集与重命名执行顺序

v1.2.0 (2026-03-06)

✨ 新增功能

  • 支持 defineExpose 宏 API 转换
  • defineExpose 场景下自动用 React.forwardRef 包装组件

🚀 优化改进

  • API 适配逻辑优化
  • 组件 ref 处理逻辑优化

v1.1.1 (2026-03-05)

🐞 修复问题

  • 样式预处理时,less/scss 导入后缀未替换为 css:修正后缀替换逻辑

v1.1.0 (2026-03-05)

✨ 新增功能

  • 单独编译 style 文件(less/sass 等)
  • 样式文件内 import 后缀自动替换(scss→css 等)

🐞 修复问题

  • 未排除项目根目录 yarn-lock 文件:补充排除规则

v1.0.4 (2026-03-05)

🐞 修复问题

  • 插槽类型定义错误:默认/非作用域插槽统一使用 ReactNode 类型
  • ignoreAssets 未配置时预设排除列表失效:启用默认排除规则

v1.0.3 (2026-03-04)

🐞 修复问题

  • TSX 组件参数异常:仅当 Vue 组件有 props 时返回函数参数
  • Vue 模板转 JSX 文本特殊字符处理错误:完善字符转义逻辑

v1.0.2 (2026-03-04)

🐞 修复问题

  • VUE_PACKAGES 常量缺失 @vureact/compiler-core:补充排除列表

v1.0.1 (2026-03-04)

🐞 修复问题

  • 生产环境 CLI 入口文件引用错误:修正路径引用

v1.0.0 (2026-03-03)

🚩 里程碑

  • 首个先行版本(代号“心灵控制”),Vue→React 编译从概念验证进入工程实践

⚡ 核心能力

  • 完整 Vue SFC (template/script setup/style) 转 React 链路
  • Composition API 映射为 React Hooks
  • 编译期处理 scoped/module 样式,输出静态 CSS
  • 基础 CLI (build/watch)、缓存、Vite 初始化、混合开发支持

1.0.0 细节参考:https://github.com/vureact-js/core/blob/master/packages/compiler-core/CHANGELOG.md

Released under the MIT License