Highlights
🚀 Rustify browserslist
Rspack now uses browserslist_rs
instead of the browserslist
npm package to parse browserslist query, which can make browserslist query parsing faster and improve consistency in SWC and lightningcss:
- Parsing default
target
is 5.5x faster than before. - Removed
caniuse-lite
dependency, reduced 2.15MB install size.
See #10520 for more details.
What's Changed
Performance Improvements ⚡
- perf: should cache connection_state result to avoid dup computation by @JSerFeng in #10495
- perf: Use ustr for RuntimeSpec by @quininer in #10480
- perf: js api resolver.resolve by @SyMind in #10513
- perf: use js api to access module.resourceResolveData by @SyMind in #10528
- perf: resource data in js loader context by @SyMind in #10517
- perf: Rustify browserslist parsing and remove caniuse-lite dependency by @chenjiahan in #10520
Exciting New Features 🎉
- feat(diagnostic): support minification error by @h-a-n-a in #10057
- feat(rstest_plugin): handle import.meta.dirname and import.meta.filename by @fi3ework in #10489
- feat(napi): add preliminary support for error code printing by @h-a-n-a in #10512
- feat(core): support dump chunk graph as graphviz by @hardfist in #10403
- feat: support webpackIgnore for new URL() by @inottn in #10506
Bug Fixes 🐞
- fix: Enrich client modules types with supported api (closes #10335) by @n0th1ng-else in #10382
- fix: should render name by chunk id when chunk name is empty by @SyMind in #10498
- fix: wrong warning sort by @quininer in #10500
- fix: should disconnect children correctly when remove available modules by @JSerFeng in #10503
- fix: align tsconfig paths matching with tsconfig-paths-webpack-plugin by @stormslowly in #10509
- fix(core): use module_id to sort module_code by @hardfist in #10516
- fix: don't panic for esm hmr by @hardfist in #10525
- fix: module_executor circular check only for internal modules by @jerrykingxyz in #10526
Document Updates 📖
- docs: add guide for get compilation object by @chenjiahan in #10501
- docs: switch to new domains by @chenjiahan in #10496
- docs: clarify
target
default value and browserslist usage by @chenjiahan in #10527
Other Changes
- chore: release 1.3.12 by @JSerFeng in #10486
- chore: fix typos by @noritaka1166 in #10490
- chore(deps): update patch npm dependencies by @renovate in #10492
- chore(deps): update dependency terser to v5.40.0 by @renovate in #10494
- chore(deps): update dependency @rslib/core to v0.9.0 by @renovate in #10493
- chore(deps): update github-actions by @renovate in #10491
- refactor: rename some enums of exports info by @LingyuCoder in #10488
- refactor: optimize module executor error info by @jerrykingxyz in #10499
- chore(deps): update napi to 3.0.0-beta.2 by @renovate in #10430
- chore: bench record chunk group by @SyMind in #10505
- refactor: split code of exports info by @LingyuCoder in #10497
- test: add benchmark prefixes based on its location by @h-a-n-a in #10511
- refactor: remove module graph param of export info setters by @LingyuCoder in #10507
- test: fix http cache folder name by @chenjiahan in #10515
- chore(ci): add release debug workflow by @stormslowly in #10529
New Contributors
- @noritaka1166 made their first contribution in #10490
Full Changelog: v1.3.12...v1.3.13