🎉 See Announcing Rspack 1.7 for more details.
What's Changed
Performance Improvements ⚡
- perf(rstest): minor performance optimization by @fi3ework in #12469
- perf: update module graph overlay map by @hardfist in #12560
New Features 🎉
- feat: stabilize lazy compilation middleware by @chenjiahan in #12429
- feat: add support for type: 'text' in asset modules by @LingyuCoder in #12457
- feat: enable lazy compilation for imports by defaults by @stormslowly in #12419
- feat(deps)!: bump
swc_corefrom 46.0.3 to 50.2.3 andswc_experimentalby @CPunisher in #12445 - feat: implement UniversalCompileAsyncWasmPlugin for universal chunk loading by @LingyuCoder in #12471
- feat: stabilize inline exports by @ahabhgk in #12475
- feat: stabilize SubresourceIntegrityPlugin by @LingyuCoder in #12483
- feat: improve deprecation warning messages by @chenjiahan in #12524
- feat: add rspack_tools to compare .cache from different os by @jerrykingxyz in #12499
- feat: improve warning messages for mocked node values by @chenjiahan in #12549
- feat: add bytes support for asset modules by @LingyuCoder in #12548
- feat: mangle exports of css modules by @LingyuCoder in #12563
- feat: default lazy compilation from cli and for web app only by @stormslowly in #12580
Bug Fixes 🐞
- fix: relative-resource-path should handle output.filename by @SyMind in #12398
- fix: improve RuntimeGlobals type definition accuracy by @LingyuCoder in #12403
- fix: handle empty resource path in context module by @LingyuCoder in #12407
- fix: align webpack behavior of removing empty entry chunk by @JSerFeng in #12414
- fix: make splitChunks more stable by @JSerFeng in #12410
- fix: should use exported name of the imported module by @JSerFeng in #12423
- fix: strip ANSI codes from ignoreWarnings messages by @chenjiahan in #12435
- fix: concatenate module should use importer's 'strict' for interop by @JSerFeng in #12446
- fix: wasm plugin panic when use persistent cache by @jerrykingxyz in #12455
- fix: add Set methods to compilation dependencies by @LingyuCoder in #12459
- fix(diagnostic): avoid emitting dim-only indent lines by @chenjiahan in #12461
- fix: handle symlinks correctly in rmrf function by @LingyuCoder in #12456
- fix: add case-sensitive check for emit assets by @LingyuCoder in #12462
- fix: use RspackHash for HTML plugin content hash calculation by @LingyuCoder in #12465
- fix: re-validate HttpUriPlugin redirects against allowedUris and enforce http(s) and max redirects by @JSerFeng in #12463
- fix: extra runtime global bits are lost after js hook by @nilptr in #12275
- fix: set lazyCompilation default to web only by @stormslowly in #12473
- fix: handle ignored asset modules with proper data URL export by @LingyuCoder in #12468
- fix: reexports in arrow-only environments without const by @chenjiahan in #12484
- fix: respect matchResource when generate nameForCondition by @Austaras in #12449
- fix: exclude hidden dir from snapshot managedPaths default value by @jerrykingxyz in #12486
- fix: relative resource path in source maps on Windows by @SyMind in #12493
- fix: parsing arrow function IIFE by @LingyuCoder in #12490
- fix: compile-time evaluation of optional chaining by @LingyuCoder in #12494
- fix: SRI plugin runtime module check for Module Federation by @LingyuCoder in #12519
- fix: use default runtime to export default interop and keep empty import for externals by @JSerFeng in #12530
- fix: optimize CSS runtime requirements logic by @LingyuCoder in #12529
- fix: include import attributes in context module identifier by @LingyuCoder in #12551
- fix: remove allowAsyncCycles option and detect all dependencies of modules by @LingyuCoder in #12552
- fix: generate CSS file for universal target by @inottn in #12570
- fix: compilation js object memory leak by @SyMind in #12579
- fix(esm_lib_plugin): should set original module for get_binding by @JSerFeng in #12584
- fix(cli): apply default lazy compilation value based on user config by @stormslowly in #12583
- fix: shebang should always in entry chunk by @JSerFeng in #12585
- fix: remove error log while lazy compilation can't find module to invildate by @stormslowly in #12566
Refactor 🔨
- refactor: use atomic_refcell for async_module_artifact by @hardfist in #12408
- refactor: use swc_experimental on concatenated module by @CPunisher in #12369
- refactor: change dependencies_diagnostics_artifact to use atomic_refcell by @hardfist in #12415
- refactor: replace
SourceFilewith&strand replaceArc<SourceMap>withRopein rspack_plugin_javascript by @CPunisher in #12404 - refactor: extract common utility functions to rspack_util by @LingyuCoder in #12447
- refactor: remove linked_hash_set dependency by @LingyuCoder in #12451
- refactor(esm-lib-plugin): manually resolve exports that re star-exported, and improve NodeTargetPlugin for module output by @JSerFeng in #12476
- refactor: extract case-sensitive check to plugin by @LingyuCoder in #12532
- refactor: check neutral platform by @LingyuCoder in #12534
- refactor: move collectTypescriptInfo out of rspackExperiments by @ahabhgk in #12535
- refactor: refactor module graph by @hardfist in #12474
- refactor: merge rspack_cacheable SerializeError and DeserializeError by @jerrykingxyz in #12556
- refactor: remove option for modules by @hardfist in #12567
- refactor: remove all option in ModuleGraphData by @hardfist in #12568
- refactor: remove get_make_module_graph_mut api by @hardfist in #12575
- refactor: refine exports info for CJS and ESM interop by @LingyuCoder in #12577
- refactor: remove redirect_to in exports info by @LingyuCoder in #12581
- refactor: use defer_options for build_module_artifact by @hardfist in #12578
- refactor: DerefOpiton default to Some(T) when T impl Default trait by @stormslowly in #12406
- refactor: make &compilation for optimization_dependencies by @hardfist in #12576
- refactor: make compilation readonly for optimize_modules phase by @hardfist in #12586
- refactor: improve exports info by @LingyuCoder in #12587
Document Updates 📖
- docs: add docs about env to control working threads limit by @hardfist in #12383
- docs: improve AGENTS.md and add comprehensive development documentation by @LingyuCoder in #12420
- docs: upgrade rspress@2.0.0-rc.2 by @SoonIter in #12426
- docs: update FAQ to clarify Rspack's support for Wasm and RSC by @chenjiahan in #12432
- docs: enhance
ignoreWarningsoption with detailed examples by @chenjiahan in #12436 - docs: add deprecated options documentation by @chenjiahan in #12448
- docs: refactor
module.rulesoptions into a dedicated page by @chenjiahan in #12452 - docs: improve
resolve.byDependencydescription and examples by @chenjiahan in #12458 - docs: fix rules[].use example by @henryqdineen in #12466
- docs: add descriptions for built-in plugins by @chenjiahan in #12485
- docs: add test/include/exclude options for eval source map devtool by @LingyuCoder in #12495
- docs: use Rspress's default table styles by @chenjiahan in #12496
- docs: remove unused code, correct the usage of Link and Table. by @SoonIter in #12498
- docs: enhance
output.asyncChunksdocumentation and examples by @chenjiahan in #12500 - docs: stablize inline exports configurations by @ahabhgk in #12504
- docs: format markdown files by @chenjiahan in #12507
- docs: mention browserslist limitations in target configuration by @chenjiahan in #12515
- docs: correct markdown link in infrastructure logging by @chenjiahan in #12525
- docs: remove obsolete comments from config examples by @chenjiahan in #12526
- docs: add redirect config for
CaseSensitivePluginby @Timeless0911 in #12550 - docs: improve node configurations by @chenjiahan in #12547
- docs: correct optimization.realContentHash type by @vsn4ik in #12562
- docs: fix childAssets typo in ChunkGroup object by @henryqdineen in #12565
Other Changes
- test: remove webpack consistency check filters from statsOutputCases by @LingyuCoder in #12394
- test: enable previously filtered test cases and update expected outputs by @LingyuCoder in #12396
- chore(ci): run Mac CI test on github hosted runner by @stormslowly in #12397
- test: update stats snapshot by @LingyuCoder in #12401
- test: enable passing normalCases tests and document failures by @LingyuCoder in #12409
- test: enable passing configCases tests and document failures by @LingyuCoder in #12412
- test: try to fix flaky test cases by @LingyuCoder in #12402
- chore(ci): fix artifact discovery logic in Rsdoctor action by @yifancong in #12405
- chore: bump
swc_experimentalto fix parsing utf8 in template by @CPunisher in #12431 - chore(ci): skip diff action for doc-only changes by @yifancong in #12437
- chore(deps): update dependency cspell to ^9.4.0 by @renovate[bot] in #12439
- chore(deps): update dependency memfs to v4.51.1 by @renovate[bot] in #12440
- chore(deps): update dependency tsx to ^4.21.0 by @renovate[bot] in #12442
- chore(deps): update dependency prettier to v3.7.4 by @renovate[bot] in #12441
- chore: skip diff CI for doc-only changes by @yifancong in #12438
- chore: enable noUnusedParameters option in tsconfig by @chenjiahan in #12464
- chore(deps): update SWC to v48.0.1 by @renovate[bot] in #12479
- chore(deps): update dependency @shikijs/transformers to ^3.20.0 by @renovate[bot] in #12480
- chore(ci): support collapsing the CI comment by @yifancong in #12472
- chore(deps): update github-actions by @renovate[bot] in #12477
- chore: release v1.7.0-beta.0 by @CPunisher in #12487
- chore(ci): update windows zstd version by @stormslowly in #12489
- chore(deps): update patch npm dependencies by @renovate[bot] in #12478
- chore(deps): bump Rslib v0.18.5 by @Timeless0911 in #12502
- chore(ci): collapse the diff action detail comments by @yifancong in #12503
- chore(deps): update dependency commander to v14 by @renovate[bot] in #12510
- chore(deps): update pnpm to v10.26.1 by @renovate[bot] in #12509
- chore(deps): update dependency @swc/plugin-remove-console to ^12.1.0 by @renovate[bot] in #12508
- chore(deps): update dependency jest-diff to v30 by @renovate[bot] in #12512
- chore(deps): update dependency pretty-format to v30 by @renovate[bot] in #12514
- ci: check formats for doc-only changes by @chenjiahan in #12511
- chore(deps): update patch crates by @renovate[bot] in #12152
- test: add retry configuration for CI to reduce flakes by @chenjiahan in #12517
- test: enable previously skipped stats output tests by @LingyuCoder in #12520
- chore: bump swc_core from 50.2.3 to 52.0.0 and swc_experimental from 0.3.3 to 0.3.5 by @CPunisher in #12518
- chore: restructure examples and add basic React example by @chenjiahan in #12522
- chore: remove logic of parallelCodeSplitting by @JSerFeng in #12424
- test: cleanup obsolete test cases and update test configurations by @LingyuCoder in #12523
- chore: allow prettier to format test tools and e2e files by @chenjiahan in #12528
- chore: release v1.7.0 beta.1 by @SyMind in #12533
- chore(deps): update dependency @module-federation/runtime-tools to v0.22.0 by @renovate[bot] in #12536
- chore(deps): update dependency markdown-to-jsx to v9 by @renovate[bot] in #12540
- chore(deps): update github-actions by @renovate[bot] in #12541
- chore(deps): update pnpm to v10.26.2 by @renovate[bot] in #12544
- chore(deps): update patch npm dependencies by @renovate[bot] in #12543
- chore(deps): update patch crates by @renovate[bot] in #12542
- chore(deps): update dependency @rslib/core to v0.18.6 by @renovate[bot] in #12553
- chore: unify prettier config format by @chenjiahan in #12557
- chore: ignore style changes in git blame by @chenjiahan in #12561
- test: cleanup diff comments by @LingyuCoder in #12564
- chore(vscode): set defaultFormatter to prettier by @Timeless0911 in #12574
- chore(deps): bump Rslib v0.19.0 by @Timeless0911 in #12573
- chore: bump swc_core from 52.0.0 to 54.0.0 and swc_experimental from 0.3.5 to 0.4.0 by @CPunisher in #12582
Full Changelog: v1.6.8...v1.7.0