web-infra-dev/rspack
 Watch   
 Star   
 Fork   
5 days ago
rspack

v2.0.4

Highlights 💡

  • Inline const with module declarations (#14032): Previously, Rspack only inlined constant exports from leaf modules in the module graph. Now constant exports from any module can be inlined, even when that module also imports or re-exports other modules. In rare circular-reference cases this can make a TDZ error disappear, but we do not expect real projects to rely on TDZ errors, so Rspack prioritizes the optimization.

    // constants.js
    import './setup';
    
    export const ENABLE_EXPERIMENT = false;
    
    // entry.js
    import { ENABLE_EXPERIMENT } from './constants';
    
    if (ENABLE_EXPERIMENT) {
      runExperiment();
    }
    
    // Before: constants.js is not a leaf module, so the branch could keep
    // reading the imported binding.
    if (ENABLE_EXPERIMENT) {
      runExperiment();
    }
    
    // Now: the constant can still be inlined, so dead branches are easier
    // to remove.
    if (false) {
      runExperiment();
    }
  • Tree shake namespace default reexport (#13980): Previously, the import * as a from './a'; export default a; pattern did not tree-shake a through the default export. Now Rspack further analyzes the default-exported namespace object and can remove unused exports from the original namespace module.

    // a.js
    export function used() {}
    export function unused() {}
    
    // bridge.js
    import * as a from './a';
    export default a;
    
    // app.js
    import a from './bridge';
    
    a.used();
    
    // Before: both used and unused could be kept in the bundle.
    // Now: unused can be tree-shaken.
  • CSS global module type (#13988): css/global is useful when most selectors in a stylesheet should stay global, but you still want CSS Modules features for selected local selectors. This makes it easier to migrate existing global CSS gradually without turning every class name into a local scoped name.

    export default {
      module: {
        rules: [{ test: /\.global\.css$/i, type: 'css/global' }],
      },
    };
    /* style.global.css */
    .button {
      color: red;
    }
    
    :local(.title) {
      font-weight: 600;
    }

    .button stays global, while .title is renamed as a local class.

  • CSS Modules local ident options (#14009): CSS Modules now support local ident hash options such as hash function, digest, digest length, and salt. These options make generated class names more configurable and better aligned with webpack-compatible CSS Modules setups.

    export default {
      module: {
        rules: [{ test: /\.module\.css$/i, type: 'css/module' }],
        generator: {
          'css/module': {
            localIdentName: '[name]__[local]__[hash]',
            localIdentHashFunction: 'xxhash64',
            localIdentHashDigest: 'hex',
            localIdentHashDigestLength: 8,
            localIdentHashSalt: 'my-salt',
          },
        },
      },
    };

What's Changed

New Features 🎉

Performance 🚀

Bug Fixes 🐞

Document 📖

Other Changes

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.0.3...v2.0.4

13 days ago
rspack

v2.0.3

What's Changed

Performance Improvements ⚡

New Features 🎉

Bug Fixes 🐞

Refactor 🔨

Document Updates 📖

Other Changes

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.0.2...v2.0.3

19 days ago
rspack

v2.0.2

What's Changed

Performance Improvements ⚡

New Features 🎉

Bug Fixes 🐞

Document Updates 📖

Other Changes

New Contributors

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.0.1...v2.0.2

27 days ago
rspack

v2.0.1

What's Changed

Performance Improvements ⚡

New Features 🎉

Bug Fixes 🐞

Refactor 🔨

Document Updates 📖

Other Changes

New Contributors

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.0.0...v2.0.1

2026-04-22 13:03:18
rspack

v2.0.0

⚡️ Rspack 2.0 Released! ⚡️


What's Changed

Breaking Changes 🛠

Performance Improvements ⚡

New Features 🎉

Bug Fixes 🐞

Refactor 🔨

Document Updates 📖

Other Changes

New Contributors

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.7.11...v2.0.0

2026-04-17 11:16:10
rspack

v2.0.0-rc.3

What's Changed

New Features 🎉

Bug Fixes 🐞

Refactor 🔨

Document Updates 📖

Other Changes

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.0.0-rc.2...v2.0.0-rc.3

2026-04-14 18:46:36
rspack

v2.0.0-rc.2

What's Changed

Performance Improvements ⚡

New Features 🎉

Bug Fixes 🐞

Refactor 🔨

Document Updates 📖

Other Changes

New Contributors

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.0.0-rc.1...v2.0.0-rc.2

2026-04-08 14:21:27
rspack

v2.0.0-rc.1

Highlights 💡

Better tree shaking with side-effect-free function analysis

Rspack can now detect side-effect-free function calls through the #__NO_SIDE_EFFECTS__ notation and manual pureFunctions hints. With support for exported functions and cross-module analysis, unused calls can be identified more reliably, improving tree shaking results and making it easier to optimize both application code and third-party dependencies.

// lib.js
/*@__NO_SIDE_EFFECTS__*/ 
export function call() {
  console.log('hi')
}

// barrel.js
import { call } from './lib'

const value = call()

// if value is unused, call can be removed
export { value }

What's Changed

Breaking Changes 🛠

Performance Improvements ⚡

New Features 🎉

Bug Fixes 🐞

Refactor 🔨

Document Updates 📖

Other Changes

New Contributors

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.0.0-rc.0...v2.0.0-rc.1

2026-03-31 18:07:43
rspack

v1.7.11

What's Changed

New Features 🎉

Other Changes

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.7.10...v1.7.11

2026-03-31 15:59:24
rspack

v2.0.0-rc.0

What's Changed

Performance Improvements ⚡

New Features 🎉

Bug Fixes 🐞

Refactor 🔨

Document Updates 📖

Other Changes

New Contributors

Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.0.0-beta.9...v2.0.0-rc.0