CHANGELOG
VuReact follows Semantic Versioning 2.0.0. Versions are in descending chronological order.
v1.8.5 (2026-05-27)
🐞 Bug Fixes
- Fixed
provide()internally using mappable APIs likecomputed()not being converted to React output #46 - Fixed missing
<Provider>component in generated React JSX when using provide in a template-less component #51
v1.8.4 (2026-05-25)
🐞 Bug Fixes
- Fixed template parser crash when modifier events had no expression #43
- Fixed
<slot>withv-elsecausing slot props parsing crash #44 - Fixed JSX children builder lacking tolerance for abnormal children shapes #45
- Fixed Vue type imports being removed after compilation but corresponding type references in code not being removed, causing TS type errors #47
- Fixed dependency analysis (e.g.,
watchEffect) missing optional chaining protection for object access mixed with optional chaining, causing crashes #48 - Fixed compiler generating incorrect runtime method
dir.Onwhen handling special template events, causing page crashes #49
v1.8.3 (2026-05-15)
🐞 Bug Fixes
- Fixed watch mode not triggering hot update when reverting to initial content: optimized cache validation to detect changes correctly on file restoration
- Removed redundant warning for component name fallback to filename: no longer logs warning when component name is derived from filename
v1.8.1 (2026-05-14)
🐞 Bug Fixes
- Fixed partial cache data loss during incremental compilation: optimized persistence for data integrity
v1.8.0 (2026-05-05)
🚀 Optimizations
- Optimized file scanning: files are scanned only once, results shared across all compilation stages
- Optimized cache read/write: unified to once per compilation, improving full build speed by ~30-40%
- Optimized cache cleanup: replaced disk-based with in-memory operations to prevent sync issues
- Optimized terminal output: unified progress display and post-build guidance
🐞 Bug Fixes
- Fixed full build deleting the workspace directory when cache is disabled: optimized cleanup logic to only delete cache files
- Fixed CLI startup version check not working: corrected update detection logic
♻️ Removals
- Removed redundant file scanning and cache operations: unified to single pass, shared across all stages
v1.7.0 (2026-04-26)
✨ Features
- Added
:deep(),:slotted(),:global()selector conversion support for scoped styles
🐞 Bug Fixes
- Fixed scoped style
data-css-*attributes not fully covering component DOM elements - Fixed CSS
hashattribute incorrectly applied to pseudo-classes/elements/attribute selectors - Fixed missing default value when file ID does not exist
- Fixed top-level variables not importing the Hook from React after being optimized with
useMemo - Fixed incorrect recognition and conversion of
v-onrequiring function wrapping - Fixed component
propsnot being collected as Hook dependencies
🚀 Optimizations
- Optimized CSS selector parsing algorithm to enhance compatibility with complex CSS selectors
- Refactored
emitcalls with dynamic event names to use computed property access and emit a warning - Modularized dependency analyzer into submodules for better maintainability
- Modularized scoped style processing for improved maintainability and extensibility
v1.6.2 (2026-04-21)
🐞 Bug Fixes
- Fixed incorrect handling of
:keyon<template>with multiple children; now warn that only one child is allowed for valid key propagation - Fixed
:keybeing incorrectly added to unsupported nodes (e.g.,<template>,<slot>); skip key transfer for invalid child types
🚀 Optimizations
- Bump runtime adapter packages to latest versions for version consistency
v1.6.1 (2026-04-17)
🚀 Optimizations
- Simplify
defineAsyncComponentpreprocessing logic, only checking for unsupportedhydrateoption - Add
defineAsyncComponentto adapter mapping
v1.6.0 (2026-04-13)
✨ Features
- Add SFC metadata collection: Collect props, emits, and options metadata during parsing
- Add
useAttrstransformation: Convert VueuseAttrs()to React props; automatically assert asRecordtype in TypeScript to isolate original props type hints - Add TypeScript intersection type support: Automatically append
Recordintersection type to props whenuseAttrsis used to ensure type integrity
🐞 Bug Fixes
- Fix import injection conflicting with top comments, align comments and import statements
- Fix incorrect migration of
<template>nodes with specific directives - Fix
:keynot properly transferred from<template>node to its first child - Fix function fields in SFC top-level TypeScript declarations incorrectly converted to
ReactNodetype
🚀 Optimizations
- Refactor script metadata collection logic; modularize for better maintainability and extensibility
v1.5.2 (2026-04-08)
🐞 Bug Fixes
- Fixed non-functional output from incomplete traditional
<script>syntax conversion; now throws clear compile-time error
🚀 Optimizations
- Removed incomplete handling logic for traditional syntax to prevent runtime errors
v1.5.1 (2026-04-04)
🐞 Bug Fixes
- Fixed messy comment alignment in output; optimized code generation
- Fixed missing import quotes when Babel minified is off; adjusted config handling
- Fixed incorrect static hoisting of non-const simple literals; refined hoisting logic
- Fixed collision between injected top imports and top comments; adjusted injection logic
🚀 Optimizations
- Removed unused
@vrspecial comments from output - Disabled default script minification to preserve readability
v1.5.0 (2026-03-30)
✨ Features
- Added
output.packageJsonoption for customizing output package.json
🐞 Bug Fixes
- Fixed non-standard event names and handler wrapping; standardized processing
- Fixed incorrect slot type rewriting for non-SFC scripts; adjusted type handling scope
- Fixed unwanted
React.memo/dirimport injection; controlled injection precisely - Fixed hanging process on Vite init failure; improved error exit
- Fixed Vue API misdetection with local variables; refined matching logic
- Fixed HTML dynamic attribute issues (string values,
data-*, template literals); corrected conversion
🚀 Optimizations
- Removed warnings for
@importin SFC style blocks - Added clear errors for unsupported Vue APIs
- Replaced imported Vue type interfaces with
anyto avoid compatibility issues - Optimized runtime import injection for better performance
- Mapped
vue-routerimports to@vureact-routerand preserved type imports - Updated runtime adapter to latest version; synced with compiler
- Optimized scoped style ID injection; skipped non-styled elements
v1.4.0 (2026-03-22)
✨ Features
- Auto-inject router provider in React entry
- Added cross-process file lock via
proper-lockfilefor concurrent builds - Supported custom Vite / React versions in
bootstrapVite - Auto-clean workspace on full build failure
- Supported TS config file
vureact.config.tswith type hints - Added batch cache update / cleanup
- Added SetupManager for dependency injection
- Added config loader & merger for flexible strategy
🐞 Bug Fixes
- Fixed build failure due to uninitialized Vite; improved init flow
- Fixed inaccurate dependency collection for top-level
useMemovariables; collected root refs only - Fixed CLI options overriding user config; merged strategically (paths only)
- Fixed JSON parse error on first build; improved cache reading
- Fixed concurrent file conflicts; ensured consistency via file lock
- Fixed cache loss breaking incremental build; optimized persistence
- Fixed missing workspace dir when Vite init is off; enforced creation
- Fixed static asset copy without cache; optimized asset cache & stats
- Fixed unremoved output / cache when style files deleted; improved cleanup
🚀 Optimizations
- Stopped collecting external imports as dependencies; reduced overhead
- Optimized inner dependency collection; avoided unconditional external function collection
- Added optional chaining for object access; prevented runtime crashes
- Simplified CLI to path-only options
- Improved CLI build statistics
- Refactored dependency analyzer; reduced unnecessary
useCallback - Modularized compiler architecture; functional config for better maintainability
♻️ Removals
- Removed auto router guide output
- Removed behavior-related CLI options
- Removed templates directory
- Removed verbose comments
v1.3.0 (2026-03-17)
✨ Features
- Added CLI version check on startup (using
update-notifier) - Auto-generated router setup guide
🐞 Bug Fixes
- Fixed missing
.valuefor ref access inv-for - Fixed event calls; standardized to optional
onClick?.() - Fixed missing optional chaining in dependency analysis
- Fixed cache bloat; stopped storing style source in cache
- Fixed missing shebang in CLI build
🚀 Optimizations
- Cleaned up example projects
- Updated README & FAQ
- Optimized build pipeline; better error handling & progress
v1.2.1 (2026-03-15)
🐞 Bug Fixes
- Fixed
provideconversion; improved Provider props - Standardized event calls to optional invocation
- Fixed
v-modelevent name generation - Fixed wrong
scopeIdon<template>/<slot> - Fixed slot scope param types; supported hyphenated fields
- Fixed missing
typemodifier forReactNodeimports - Fixed Vue Router history API mapping
- Fixed
emitformatting; supportedupdate:xxx→onUpdateXxx - Fixed
provideprocessing order
v1.2.0 (2026-03-06)
✨ Features
- Added
defineExposemacro conversion - Auto-wrapped components with
React.forwardReffordefineExpose
🚀 Optimizations
- Optimized API adaptation
- Optimized component ref handling
v1.1.1 (2026-03-05)
🐞 Bug Fixes
- Fixed un-renamed
.less/.scssimports to.csswith style preprocessors
v1.1.0 (2026-03-05)
✨ Features
- Added standalone style compilation (Less, Sass)
- Auto-replaced style import extensions (e.g.
.scss→.css)
🐞 Bug Fixes
- Fixed unexcluded root
yarn.lock
v1.0.4 (2026-03-05)
🐞 Bug Fixes
- Fixed slot typing; used
ReactNodefor default / non-scoped slots - Fixed default exclude list not working when
ignoreAssetsunset
v1.0.3 (2026-03-04)
🐞 Bug Fixes
- Fixed TSX component params; only included props when present
- Fixed special character escaping in template-to-JSX text
v1.0.2 (2026-03-04)
🐞 Bug Fixes
- Added
@vureact/compiler-coreto exclude list inVUE_PACKAGES
v1.0.1 (2026-03-04)
🐞 Bug Fixes
- Fixed production CLI entry path reference
v1.0.0 (2026-03-03)
🎉 Milestone
- Initial release (code-name: Mind Control); Vue-to-React compilation ready for production
⚡ Core
- Full Vue SFC → React conversion (template / script setup / style)
- Composition API → React Hooks mapping
- Compile-time scoped / module CSS output
- Basic CLI (build / watch), cache, Vite init, hybrid development
Details for 1.0.0: https://github.com/vureact-js/core/blob/master/packages/compiler-core/CHANGELOG.md
