The Wire · Showcase
VitePress Moves Build to tsdown
By RepoJournal · Filed · About Vue.js
VitePress is rebuilding its pipeline, and your theme components will finally get real prop types.
VitePress is ditching the rollup and tsc combo for tsdown [1], a move that modernizes the TypeScript setup without changing the published package layout. The notable win: shipped `.vue` files are now plain JavaScript with real generated declarations, so theme components finally have proper prop types [2]. The release notes call out that the new build is "unbundled (`src/client/**/*.ts`), emitting pe," though the exact performance numbers are still pending [2]. Meanwhile, eslint-plugin-vue fixed a broken CI workflow that had been failing with `Cannot read properties of null (reading 'querySelectorAll')` [3], caused by a `:scope` selector that never matched a DocumentFragment [4]. That fix keeps the deprecated HTML elements check running, so your linting rules stay accurate [4]. The rest of the activity is housekeeping: formatting and icon cleanup [5] and rolldown dedupe . Four commits and two PRs across the repos, so this is a maintenance day, but the VitePress build shift is one to watch.
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
- → Test your VitePress theme components against the new tsdown build to confirm prop types work as expected vuejs/vitepress [plan]
- → Verify your eslint-plugin-vue CI isn't relying on the broken HTML resources update workflow vuejs/eslint-plugin-vue [monitor]
References
- [1] chore: migrate build to tsdown (#5396) vuejs/vitepress
- [2] chore: migrate build to tsdown ↗ vuejs/vitepress
- [3] chore(tools/update-html-resources): fix deprecated HTML elements lookup ↗ vuejs/eslint-plugin-vue
- [4] chore(tools/update-html-resources): fix deprecated HTML elements lookup (#3129) vuejs/eslint-plugin-vue
- [5] chore: format codebase and remove unused icons vuejs/vitepress