Conversation
How to use the Graphite Merge QueueAdd the label graphite: merge-when-ready to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
✅ Deploy Preview for rolldown-rs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Benchmarks Rust
|
c4caea3 to
3ea8135
Compare
There was a problem hiding this comment.
Pull request overview
This PR enables TypeScript project references support when using manual tsconfig mode. Previously, project references were disabled in manual mode, causing all files to use the same tsconfig settings. Now, when a manually specified tsconfig contains project references, each file will resolve its nearest appropriate tsconfig, allowing different files to have different configurations based on the project structure.
Key changes:
- Enables automatic resolution of TypeScript project references in manual tsconfig mode
- Adjusts the transform options creation logic to use Raw mode (per-file tsconfig resolution) when project references are detected
- Updates test assertions to verify that different files use their respective tsconfig settings (different JSX factories)
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
packages/rolldown/tests/fixtures/tsconfig/manual/assert.mjs |
Updates test assertions to expect different behavior for bar and foo modules based on their respective tsconfig settings |
crates/rolldown_resolver/src/resolver_config.rs |
Changes tsconfig references from Disabled to Auto for Manual mode to enable project references resolution |
crates/rolldown_common/src/inner_bundler_options/types/transform_options.rs |
Adds TsConfig parameter to RawTransformOptions::new() and configures the resolver to handle project references in both Auto and Manual modes |
crates/rolldown/src/utils/prepare_build_context.rs |
Implements conditional logic to use Raw mode transform options when a manual tsconfig has project references, otherwise uses Normal mode for better performance |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
3ea8135 to
50d8c62
Compare
|
I think we should clarify in the description of this PR what the breaking change is. |
e6f9af5 to
9eaf5e5
Compare
9eaf5e5 to
190f923
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: 翠 <[email protected]> Signed-off-by: dalaoshu <[email protected]>
190f923 to
42459f2
Compare
Merge activity
|
closes #7177, closes #7354 ### Description This PR enables TypeScript project references support in manual tsconfig mode, aligning Rolldown's behavior with Vite's auto-discovery mechanism. ### Breaking Changes #### Previous behavior (aligned with `esbuild`) - Project `references` were disabled in manual mode - `include`/`exclude` patterns were ignored - All files used the same tsconfig configuration #### New behavior If the tsconfig has `references` and certain conditions are met (the file extension is allowed and the tsconfig's `include`/`exclude` patterns don't match the file), then the referenced tsconfigs will be searched for a match. If no match is found, it falls back to the original tsconfig.
42459f2 to
51d777d
Compare
51d777d to
42459f2
Compare
closes #7177, closes #7354 ### Description This PR enables TypeScript project references support in manual tsconfig mode, aligning Rolldown's behavior with Vite's auto-discovery mechanism. ### Breaking Changes #### Previous behavior (aligned with `esbuild`) - Project `references` were disabled in manual mode - `include`/`exclude` patterns were ignored - All files used the same tsconfig configuration #### New behavior If the tsconfig has `references` and certain conditions are met (the file extension is allowed and the tsconfig's `include`/`exclude` patterns don't match the file), then the referenced tsconfigs will be searched for a match. If no match is found, it falls back to the original tsconfig.
42459f2 to
1906252
Compare
1906252 to
42459f2
Compare
## [1.0.0-beta.57] - 2025-12-24 ✨ TypeScript Project References Support - Rolldown now supports TypeScript project references when manually specifying a `tsconfig` - See more details: https://rolldown.rs/options/tsconfig 💥 Rename `__export` to `__exportAll` - Update `rolldown-plugin-dts` to the latest version for compatibility ### 💥 BREAKING CHANGES - tsconfig: enable project references support in manual mode (#7545) by @shulaoda ### 🚀 Features - add `CANNOT_CALL_NAMESPACE` warning (#7636) by @sapphi-red - add import path for unresolved import diagnostics (#7625) by @sapphi-red - optimize dynamic entry facade chunks by merging with common chunks when they are captured by common chunks (#7486) by @IWANABETHATGUY ### 🐛 Bug Fixes - rename `__export` to `__exportAll` to be compatible with `cjs-module-lexer` (#7640) by @IWANABETHATGUY - strip UTF-8 BOM when using text loader (#7635) by @sapphi-red - rolldown_plugin_replace: avoid crashing with invalid delimiters (#7621) by @sapphi-red ### 🚜 Refactor - export all filter functions (#7622) by @sxzz - allow multiple help messages in diagnostics (#7624) by @sapphi-red ### 📚 Documentation - add README.md to packages/rolldown (#7556) by @Copilot ### ⚡ Performance - use fsevents on macOS for file watching (#7596) by @sapphi-red ### 🧪 Testing - handle re-exports of external modules in CJS format (#7641) by @IWANABETHATGUY - update integration to use vite's rolldown-canary branch (#7633) by @shulaoda ### ⚙️ Miscellaneous Tasks - docs: fix Netlify ignore condition to detect docs changes across all PR commits (#7637) by @Copilot - deps: update rollup submodule for tests to v4.54.0 (#7630) by @sapphi-red - skip benchmarks for PRs with 'graphite: merge-when-ready' label (#7631) by @Boshen - deps: update esbuild for tests to 0.27.2 (#7629) by @sapphi-red - fix "update-test-dependencies" workflow (#7628) by @sapphi-red - deps: update test262 submodule for tests (#7626) by @sapphi-red - deps: update dependency oxlint to v1.35.0 (#7623) by @renovate[bot] Co-authored-by: shulaoda <[email protected]>

closes #7177, closes #7354
Description
This PR enables TypeScript project references support in manual tsconfig mode, aligning Rolldown's behavior with Vite's auto-discovery mechanism.
Breaking Changes
Previous behavior (aligned with
esbuild)referenceswere disabled in manual modeinclude/excludepatterns were ignoredNew behavior
If the tsconfig has
referencesand certain conditions are met (the file extension is allowed and the tsconfig'sinclude/excludepatterns don't match the file), then the referenced tsconfigs will be searched for a match. If no match is found, it falls back to the original tsconfig.