The Wire · Showcase
VUE-JSX-VAPOR SHIPS WITH TYPE INFERENCE FOR REFS AND SLOTS
By RepoJournal · Filed · About Vue.js
v3.2.20 landed overnight with macro fixes that unblock `defineExpose` compilation and bring proper TypeScript inference to component references.
Vue's JSX Vapor variant shipped a release [1] that clears two critical macro compilation errors. The `defineExpose` macro was generating incorrect code when called without arguments or with generic types [2], now resolved [3]. A second fix prevents style URLs from being mangled into comments [4]. The release also adds type inference for refs and v-slots [5], a quality-of-life win for TypeScript users. Meanwhile, Core is steadying the ship with housekeeping: btea removed outdated postcss configuration that no longer carries meaning [6], and disabled TypeScript 7 support in the playground after discovering it's incompatible with Vue [7]. VitePress is mid-conversion on a larger refactor to use relative length units instead of pixels [8], improving accessibility and making the theme more maintainable. Across all three repos, 8 commits and 4 pull requests landed in the last 24 hours.
One email a day. Unsubscribe in one click.
Keep up with Vue.js in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Upgrade to vue-jsx-vapor v3.2.20 if you use defineExpose or style macros vuejs/vue-jsx-vapor [immediate]
- → Check TypeScript version compatibility in your Vue playground setup vuejs/core [plan]
- → Monitor VitePress rem conversion for any layout shifts in your docs vuejs/vitepress [monitor]
References
- [1] v3.2.20 ↗ vuejs/vue-jsx-vapor
- [2] fix(macros): resolve compile error in `defineExpose` ↗ vuejs/vue-jsx-vapor
- [3] fix(macros): resolve compile error in `defineExpose` (#62) vuejs/vue-jsx-vapor
- [4] fix(macros/define-style): prevent convert url to comment vuejs/vue-jsx-vapor
- [5] feat(types): support infer ref and v-slots type vuejs/vue-jsx-vapor
- [6] chore: remove outdated configuration ↗ vuejs/core
- [7] chore(playground): disable unsupported ts7 and eliminate vite warn ↗ vuejs/core
- [8] feat: convert px to rem ↗ vuejs/vitepress