131 wires and counting

$ follow Vue.js

Keep up with Vue.js in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-09-21
stories 6

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

vueCompilerOptions.plugins now overrides, not merges

By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology

The language-tools desk landed two fixes that change resolved TypeScript behavior for Vue projects: plugin lists in an extends chain now replace rather than accumulate, and union-typed props survive withDefaults.

fix(language-core): override vueCompilerOptions.plugins instead of merging vuejs/language-tools

by johnsoncodehk

A tsconfig that sets vueCompilerOptions.plugins now replaces the inherited list instead of merging into it, matching how extends treats other array options. Configs that never declare plugins are unaffected, and [] clears inherited plugins, so a base config plus a local plugin means listing both yourself.

fix(language-core): keep union props when using withDefaults (#6180) vuejs/language-tools

by xia-chao

withDefaults(defineProps<A | B>()) used to emit DefineSetupFnComponent<Record<string, any>>: the homomorphic mapped type distributed __VLS_TypePropsToOption over the union, so defineComponent saw two incompatible runtime props objects and fell back to the setup overload. A non-homomorphic remap keeps the runtime props a single object.

fix(language-core): deduplicate vueCompilerOptions.plugins on resolve vuejs/language-tools

by camonunez

In extends chains such as Nuxt monorepos with shared layers, the same plugin entry could be registered more than once because CompilerOptionsResolver.addConfig() appended every resolved module while template compilation only consumed the first plugin returning a result, so a stale workspace copy of something like @vue/language-plugin-pug could win. Plugin resolution now deduplicates.

Quick answers

What shipped in Vue.js on September 21, 2026?
The language-tools desk landed two fixes that change resolved TypeScript behavior for Vue projects: plugin lists in an extends chain now replace rather than accumulate, and union-typed props survive withDefaults. In total, 3 commits and 3 pull requests landed.
Who contributed to Vue.js on September 21, 2026?
3 developers shipped this update, including johnsoncodehk, xia-chao, and camonunez.
What were the notable Vue.js updates?
fix(language-core): override vueCompilerOptions.plugins instead of merging, fix(language-core): keep union props when using withDefaults (#6180), and fix(language-core): deduplicate vueCompilerOptions.plugins on resolve.