4 hours ago
editor

v4.0.1

4.0.1 (2026-05-20)

Bug Fixes

  • fall back to default code block language on import (835ad54), closes #935
7 hours 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

7 hours ago
astro

@astrojs/cloudflare@13.5.3

Patch Changes

  • #16801 d619277 Thanks @ematipico! - Reverts a change to the esbuild dep-scan plugin that caused astro check and astro build to fail by making esbuild incorrectly bundle virtual: modules (e.g. from expressive-code)

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.3
7 hours ago
astro

astro@6.3.6

Patch Changes

  • #16774 8f77583 Thanks @astrobot-houston! - Fixes markdown images with empty alt text (![](image.jpg)) in content collections dropping the alt attribute entirely. The alt="" attribute is now correctly preserved in the rendered HTML output, which is important for accessibility (indicating decorative images).

  • #16776 3d10b5e Thanks @matthewp! - Fixes HMR serving stale content when components are passed as props via getStaticPaths()

  • #16784 7453860 Thanks @ematipico! - Improved the printing of the build time if it goes over the 60 seconds.

  • #16665 3dbbcee Thanks @Princesseuh! - Fixes remote SVG sources erroring with dangerouslyProcessSVG after the v6.3 SVG-processing gate. The default Sharp service now resolves the output format from the source up-front when it can (URL extension, data: MIME, ESM metadata), and from the actual buffer at request time when it can't, so SVG sources pass through untouched without needing to set image.dangerouslyProcessSVG: true or an explicit format="svg".

    The error message has also been updated to point at format="svg" as the simpler workaround when an SVG source is encountered without dangerouslyProcessSVG enabled.

  • #16777 1754b91 Thanks @matthewp! - Fixes HMR serving stale content for dynamically imported components through barrel files

  • #16730 068d924 Thanks @harshagarwalnyu! - Fixes an issue where the file() content loader did not generate a valid JSON Schema for collections whose JSON or YAML data is a top-level array instead of an object.

8 hours ago
router

Release 2026-05-20 10:04

Release 2026-05-20 10:04

Changes

Features

  • deferred hydration (#7362) (5fa9e555f3) by @schiller-manuel
  • router-core: params.priority route option as tie breaker in matching algorithm (#7411) (d533f87976) by @Sheraff

Fix

  • fix route mismatch warnings and HMR route indexes (#7422) (b60eb36e59) by @schiller-manuel
  • router-plugin: detect typed root route context for HMR (#7420) (8146db7e54) by @schiller-manuel
  • router-core: hydrate before initial client route match (#7416) (d9cf9331b8) by @schiller-manuel

Chore

  • update express and webpack-dev-server (#7443) (697c66b337) by @Sheraff
  • update zod to v4.4.3 (#7441) (9f6258f23e) by @Sheraff
  • update @rolldown/pluginutils to 1.0.1 (#7440) (fa48ea8d38) by @Sheraff
  • update chokidar to v5 (#7439) (c0f439c59b) by @Sheraff
  • update @swc/core in example/react/quickstart-webpack-file-based (#7434) (60ad69c8fa) by @Sheraff

Packages

  • @tanstack/react-router@1.170.5
  • @tanstack/react-start@1.168.7
  • @tanstack/react-start-client@1.168.0
  • @tanstack/react-start-rsc@0.1.7
  • @tanstack/react-start-server@1.167.5
  • @tanstack/router-cli@1.167.6
  • @tanstack/router-core@1.171.3
  • @tanstack/router-generator@1.167.6
  • @tanstack/router-plugin@1.168.7
  • @tanstack/router-utils@1.162.1
  • @tanstack/router-vite-plugin@1.167.7
  • @tanstack/solid-router@1.170.5
  • @tanstack/solid-start@1.168.7
  • @tanstack/solid-start-client@1.168.0
  • @tanstack/solid-start-server@1.167.5
  • @tanstack/start-client-core@1.170.0
  • @tanstack/start-plugin-core@1.171.0
  • @tanstack/start-server-core@1.169.0
  • @tanstack/start-static-server-functions@1.167.5
  • @tanstack/start-storage-context@1.167.5
  • @tanstack/vue-router@1.170.5
  • @tanstack/vue-start@1.168.7
  • @tanstack/vue-start-client@1.167.5
  • @tanstack/vue-start-server@1.167.5
8 hours ago
router

@tanstack/start-static-server-functions@1.167.5

Patch Changes

  • Updated dependencies [5fa9e55]:
    • @tanstack/start-client-core@1.170.0
    • @tanstack/react-start@1.168.7
    • @tanstack/solid-start@1.168.7
8 hours ago
router

@tanstack/vue-start-server@1.167.5

Patch Changes

  • Updated dependencies [5fa9e55]:
    • @tanstack/start-client-core@1.170.0
    • @tanstack/start-server-core@1.169.0
    • @tanstack/router-core@1.171.3
    • @tanstack/vue-router@1.170.5
8 hours ago
router

@tanstack/vue-start-client@1.167.5

Patch Changes

  • Updated dependencies [5fa9e55]:
    • @tanstack/start-client-core@1.170.0
    • @tanstack/router-core@1.171.3
    • @tanstack/vue-router@1.170.5
8 hours ago
router

@tanstack/start-storage-context@1.167.5

Patch Changes

  • Updated dependencies [5fa9e55]:
    • @tanstack/router-core@1.171.3
8 hours ago
router

@tanstack/start-server-core@1.169.0

Minor Changes

  • Add deferred Hydrate boundary support for TanStack Start. (#7362)

    Hydrate boundaries can now be code-split by the Start compiler, preload their generated client chunks, preserve server-rendered fallback HTML, and replay interaction-triggered events after hydration. The compiler integration now uses a Start-owned compiler plugin for Hydrate virtual modules across Vite and Rsbuild, with dev invalidation for generated virtual modules.

    Shared AST utilities used by the router code-splitter and Hydrate virtual modules were moved into @tanstack/router-utils so both pipelines can retain referenced top-level declarations, unwrap local exports, and let dead-code elimination remove unused route module code.

Patch Changes

  • Updated dependencies [5fa9e55]:
    • @tanstack/start-client-core@1.170.0
    • @tanstack/router-core@1.171.3
    • @tanstack/start-storage-context@1.167.5