This release marks a major modernization of vite-tsconfig-paths, moving to the OXC and Rolldown ecosystem for significantly improved performance and a leaner dependency tree.
Special thanks to Ben Snyder (@benpsnyder) for this massive overhaul!
High-Level Changes
- OXC Resolver Integration: Replaced custom path-matching logic with
oxc-resolver. This handlestsconfigpaths natively in Rust, providing a high-performance resolution pipeline. - Rolldown Ready: Added support for Rolldown-compatible
resolveIdhook filters. This allows skipping unnecessary JS-to-Rust boundary calls for relative imports and virtual modules on supported engines (Vite 6.3+, Rollup 4.38+, and Rolldown). - Toolchain Modernization:
- Switched from
tsupto Rolldown for bundling, reducing transitive dependencies by over 100. - Migrated from Prettier to oxfmt (OXC's formatter).
- Introduced oxlint for fast, type-aware linting.
- Uses oxc-transform for native
.d.tsgeneration viaisolatedDeclarations.
- Switched from
- TypeScript 6.0: Upgraded to TypeScript 6.0 RC, including fixes for new strictness requirements and deprecations.
- Performance Wins: Benchmarks show the new implementation is approximately 1.22x faster on the plugin's own test suite and provides measurable wins in real-world AnalogJS targets.
Breaking Changes & Compatibility
- Node.js >= 18 is now required.
- Vite >= 5.0.0 is now the minimum supported version.
.jsonImport Guard: The guard now applies to all resolutions (including those frompaths), requiring explicit extensions for JSON files if they aren't matched by a specific pattern.- Drop-in Replacement: Despite the internal rewrite, all existing test fixtures pass, and the plugin remains a drop-in replacement for most users.
How to try it
This is an alpha release. You can install it using the next tag:
npm install vite-tsconfig-paths@next