What's Changed
New Features 🎉
- feat: support JavaScript URL entries with factory type probes by @intellild in #15666
- feat: resolver cache in the new cache system by @ahabhgk in #15839
Performance 🚀
- perf(core): box optional match resource data by @chenjiahan in #15831
- perf: reduce exports info and parser memory footprint by @LingyuCoder in #15821
- perf(core): box optional RSC metadata by @chenjiahan in #15837
- perf(concatenated): store binding references as indices by @LingyuCoder in #15834
- perf: reuse compilation dependency arrays and strings by @SyMind in #15763
- perf(core): box import attributes by @chenjiahan in #15844
- perf(core): shrink dependency location storage by @chenjiahan in #15849
- perf(core): store module requests as boxed strings by @chenjiahan in #15856
- perf: reduce retained dependency and source capacity by @LingyuCoder in #15854
- perf(javascript): share the used-by-exports payload of a dependency by @LingyuCoder in #15851
- perf: skip unused code splitting cache copies by @JSerFeng in #15867
- perf(stats): release handles per module while converting stats to JS by @stormslowly in #15788
Bug Fixes 🐞
- fix(types): allow void context module waterfall callbacks by @chenjiahan in #15832
- fix: revert "feat: support JavaScript URL entries with factory type probes" by @intellild in #15840
- fix: preserve deferred evaluation in modern-module output by @JSerFeng in #15846
- fix(resolve): resolve relative tsconfig paths against cwd by @intellild in #15713
- fix(rstest): resolve mock APIs through the runtime registry by @9aoy in #15823
- fix: interrupt compaction at cache shutdown by @ahabhgk in #15850
- fix(types): make SharePlugin enhanced option optional by @chenjiahan in #15855
- fix(types): align externals function signatures by @chenjiahan in #15857
- fix(types): correct externals resolver overloads by @chenjiahan in #15863
- fix: reset MultiCompiler done state on watch restart by @chenjiahan in #15865
- fix(types): allow unnamed module federation consumers by @chenjiahan in #15868
- fix: require a name for shared dependency tree shaking by @chenjiahan in #15872
- fix(types): allow stats printer hooks to return void by @chenjiahan in #15874
- fix(types): support custom stats fields in extract hooks by @chenjiahan in #15880
- fix(types): allow shouldEmit hooks to return void by @chenjiahan in #15881
- fix(types): allow Node fs as intermediate file system by @chenjiahan in #15895
- fix(types): accept entry dependencies in ModuleGraph queries by @chenjiahan in #15896
- fix(cli): enable compile cache before loading CLI by @chenjiahan in #15903
- fix: respect CI=false and skip compile cache in CI by @chenjiahan in #15904
- fix(rstest): transform non-hoisted mock APIs in expression position by @fi3ework in #15877
- fix: avoid retaining source copies in RealContentHash by @JSerFeng in #15902
- fix(loader): avoid mutating lightningcss-loader options by @tiagovilasboas in #15900
- fix(loader): normalize builtin options for inline requests by @SoonIter in #15909
Document 📖
- docs: clarify externals usage and consolidate function reference by @chenjiahan in #15866
Other Changes
- chore(deps): upgrade Rstack to 0.8.0 by @SoonIter in #15838
- chore(test): migrate 60 more configs to TypeScript by @chenjiahan in #15836
- test: migrate 47 more configs to TypeScript by @chenjiahan in #15843
- chore(test): migrate 20 cache and callback configs to TypeScript by @chenjiahan in #15852
- chore(deps): update dependency memfs to v4.79.0 by @renovate[bot] in #15891
- chore(deps): update rust crate swc_ecma_minifier to 61.0.9 by @renovate[bot] in #15890
- chore(deps): update patch npm dependencies by @renovate[bot] in #15889
- chore(deps): update dependency webpack-sources to v3.5.3 by @renovate[bot] in #15888
- test: migrate HTTP integrity configuration to TypeScript by @chenjiahan in #15892
- test: migrate five configurations to TypeScript by @chenjiahan in #15893
New Contributors
- @tiagovilasboas made their first contribution in #15900
Full Changelog: v2.2.7...v2.2.8