Skip to content

release: v1.1.0#9637

Merged
shulaoda merged 1 commit into
mainfrom
release-v1.1.0-1780487413
Jun 3, 2026
Merged

release: v1.1.0#9637
shulaoda merged 1 commit into
mainfrom
release-v1.1.0-1780487413

Conversation

@rolldown-guard

@rolldown-guard rolldown-guard Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Important

This is a minor release. Two changes alter default behavior compared to 1.0.3. Please read this section before upgrading. Everything else is additive (new features, fixes, deps).

⚠️ Notable behavior changes

1. experimental.lazyBarrel is now enabled by default (#9632)

What changed. experimental.lazyBarrel now defaults to true. When a barrel module is recognized as side-effect-free, Rolldown skips compiling the re-exported modules that are never actually used.

Impact. For codebases with large barrel files (component libraries such as Ant Design, @mui/icons-material, etc.) this is a meaningful build-time speedup, and for the vast majority of projects the emitted output is unchanged. In rare cases where a barrel is incorrectly treated as side-effect-free, the optimization could drop a module that was being relied on for its side effects.

How to opt out (backward compatible).

// rolldown.config.js
export default {
  experimental: { lazyBarrel: false },
}

Note: this opt-out flag is planned to be removed in a future release. If you have a case where you must turn it off, please open an issue so we can fix the underlying detection instead.


2. tsconfig project-reference resolution now aligns with TypeScript

Upgrading oxc_resolver (11.19.111.20.0 in #9549, then → 11.21.0 in #9634) changes how a solution-style tsconfig.json (one that only lists references and delegates the real settings to tsconfig.app.json / tsconfig.node.json, as Vite scaffolds) is resolved, bringing it in line with how TypeScript (tsc) itself behaves:

  • Reference match priority (oxc-resolver #1151): when the root has references, a referenced project that includes the file now takes precedence over the root, instead of the root matching it first (this is what TypeScript already does). So that project's compilerOptions.paths now apply.
  • allowJs (oxc-resolver #1198): whether a .js/.jsx/.mjs/.cjs file is included is now decided by each referenced project's own allowJs, not the root's (again matching TypeScript). So tsconfig.app.json with allowJs: true + paths now resolves aliases for .js files even when the root doesn't set allowJs.

For most projects this is a fix (the standard Vite paths aliases now resolve, closes #8468), but it is a behavior change if you relied on the previous behavior, where the root's paths / allowJs took precedence.

If you relied on the old "root wins" behavior. There is no exact toggle back, because the old behavior was the bug being fixed. The recommended path is to align your config with TypeScript: declare the paths / allowJs on the referenced project that actually owns the files.

If you must keep the old precedence while still using references: a referenced project's match wins, and the first matching references entry takes priority (the root is only a fallback when no reference claims the file). So extract the old root settings into their own config and list it first:

// tsconfig.json (solution root)
{
  "files": [],
  "references": [
    { "path": "./tsconfig.base.json" }, // old root paths/allowJs — listed first, so it wins
    { "path": "./tsconfig.app.json" },
    { "path": "./tsconfig.node.json" }
  ]
}

tsconfig.base.json should carry the paths you previously declared on the root, plus allowJs: true if it needs to claim .js files (the extension is checked against each config's own allowJs). With no include, it defaults to **/* under its directory and claims every file first.

Alternatively, bypass reference resolution entirely by pointing the top-level tsconfig option at a single config: export default { tsconfig: './tsconfig.app.json' }.


[1.1.0] - 2026-06-03

🚀 Features

🐛 Bug Fixes

🚜 Refactor

📚 Documentation

⚡ Performance

🧪 Testing

⚙️ Miscellaneous Tasks

❤️ New Contributors

@netlify

netlify Bot commented Jun 3, 2026

Copy link
Copy Markdown

Deploy Preview for rolldown-rs ready!

Name Link
🔨 Latest commit 35ddb5d
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/6a2014fd5c867c000958f941
😎 Deploy Preview https://deploy-preview-9637--rolldown-rs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@codspeed-hq

codspeed-hq Bot commented Jun 3, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 4 untouched benchmarks
⏩ 10 skipped benchmarks1


Comparing release-v1.1.0-1780487413 (35ddb5d) with main (867d78d)

Open in CodSpeed

Footnotes

  1. 10 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@shulaoda shulaoda merged commit c462c7c into main Jun 3, 2026
38 checks passed
@shulaoda shulaoda deleted the release-v1.1.0-1780487413 branch June 3, 2026 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: paths aliases in referenced TSConfigs are not respected by Rolldown

2 participants