fix: pass yarn_pnp option where needed#8736
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. |
3120a3d to
9dcc3e1
Compare
✅ Deploy Preview for rolldown-rs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for rolldown-rs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
9dcc3e1 to
7fe9fc3
Compare
There was a problem hiding this comment.
Pull request overview
Adds Yarn Plug’n’Play (PnP) awareness to tsconfig discovery/caching across the JS utilities and Rust transform pipeline, and introduces a dedicated resolveTsconfig/TsconfigCache wrapper utility.
Changes:
- Thread a
yarn_pnp/yarnPnpboolean through NAPI bindings and Rust tsconfig discovery (oxc_resolver) paths. - Add
packages/rolldown/src/utils/resolve-tsconfig.tsto wrap the binding APIs and provide a zero-argTsconfigCache. - Update public
rolldown/utilsexports to surfaceresolveTsconfigand the newTsconfigCachewrapper.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/rolldown/src/utils/transform.ts | Passes detected Yarn PnP flag into binding transform calls; switches TsconfigCache type source to the new wrapper module. |
| packages/rolldown/src/utils/resolve-tsconfig.ts | New wrapper module providing resolveTsconfig() and a zero-arg TsconfigCache that internally wires Yarn PnP. |
| packages/rolldown/src/utils-index.ts | Re-exports resolveTsconfig/TsconfigCache from the new wrapper module. |
| packages/rolldown/src/experimental-index.ts | Adjusts deprecated TsconfigCache re-export to point at wrapper module (but still re-exports binding resolveTsconfig). |
| packages/rolldown/src/binding.d.cts | Updates binding-level signatures (extra yarnPnp param; TsconfigCache ctor now takes yarnPnp). |
| crates/rolldown/src/utils/prepare_build_context.rs | Plumbs yarn_pnp into filesystem/resolver setup and raw transform options creation. |
| crates/rolldown_common/src/utils/enhanced_transform.rs | Adds yarn_pnp to tsconfig auto-discovery resolver options. |
| crates/rolldown_common/src/inner_bundler_options/types/transform_options.rs | Extends RawTransformOptions::new to accept and forward yarn_pnp into oxc_resolver. |
| crates/rolldown_binding/src/transform.rs | Extends NAPI transform/resolve-tsconfig entrypoints to take yarn_pnp and forwards it into core logic. |
| crates/rolldown_binding/src/transform_cache.rs | Updates TsconfigCache constructor to accept yarn_pnp; removes Default; updates tests accordingly. |
You can also share your feedback on Copilot code review. Take the survey.
Merge activity
|
7fe9fc3 to
81638b3
Compare
81638b3 to
a828c64
Compare
There was a problem hiding this comment.
Pull request overview
Plumbs a Yarn Plug’n’Play (PnP) enablement flag through the TS/Rust transform + tsconfig-resolution path, while keeping the high-level rolldown/utils and rolldown/experimental APIs auto-detecting PnP from process.versions.pnp.
Changes:
- Add
yarnPnpdetection in JS utilities and pass it into bindingenhancedTransform*andresolveTsconfig. - Introduce
utils/resolve-tsconfig.tswrapper exportingTsconfigCache(auto-configured) andresolveTsconfig. - Thread
yarn_pnpthrough Rust transform/tsconfig resolution (including oxc_resolver options) and update generated binding typings.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/rolldown/src/utils/transform.ts | Passes detected yarnPnp into binding transform functions; switches TsconfigCache type import to new wrapper. |
| packages/rolldown/src/utils/resolve-tsconfig.ts | New wrapper providing TsconfigCache/resolveTsconfig with auto Yarn PnP detection. |
| packages/rolldown/src/utils-index.ts | Re-exports TsconfigCache from the new wrapper module. |
| packages/rolldown/src/experimental-index.ts | Re-exports resolveTsconfig from wrapper; re-points deprecated TsconfigCache export. |
| packages/rolldown/src/binding.d.cts | Updates binding signatures/types to include yarnPnp plumbing and new constructor signature. |
| crates/rolldown/src/utils/prepare_build_context.rs | Threads yarn_pnp into filesystem + raw transform options construction. |
| crates/rolldown_common/src/utils/enhanced_transform.rs | Adds yarn_pnp arg and forwards it to oxc_resolver tsconfig discovery. |
| crates/rolldown_common/src/inner_bundler_options/types/transform_options.rs | Extends RawTransformOptions::new to include yarn_pnp for resolver options. |
| crates/rolldown_binding/src/transform.rs | Extends N-API exports to accept yarn_pnp and passes it through to core transform + cache construction. |
| crates/rolldown_binding/src/transform_cache.rs | Changes N-API TsconfigCache constructor to take yarn_pnp and forwards it to oxc_resolver. |
| .typos.toml | Adds PnP identifier allowance for typos tooling. |
You can also share your feedback on Copilot code review. Take the survey.
Benchmarks Rust |
Merging this PR will not alter performance
Comparing Footnotes
|
## [1.0.0-rc.10] - 2026-03-18 ### 🚀 Features - add indentExclusionRanges property to MagicString (#8746) by @IWANABETHATGUY - expose `oxcRuntimePlugin` (#8654) by @sapphi-red - rust: make bundler generic over FileSystem for in-memory benchmarks (#8652) by @Boshen ### 🐛 Bug Fixes - rolldown_plugin_vite_dynamic_import_vars: align dynamic import fast check with Vite (#8760) by @shulaoda - renamer: handle existing bindings in nested scopes when finding unique names (#8741) by @drewolson - pass `yarn_pnp` option where needed (#8736) by @sapphi-red - preserve optional chaining in namespace member expr rewrite (#8712) by @Copilot - correct UTF-16 index handling in native MagicString (#8693) by @IWANABETHATGUY - mark failing doctests as ignore (#8700) by @Boshen - prevent may_partial_namespace from leaking through include_module (#8682) by @IWANABETHATGUY - ci: bump native-build cache key to invalidate stale napi-rs artifacts (#8678) by @Boshen - `comments.annotation: false` breaking tree-shaking (#8657) by @IWANABETHATGUY - validate filenames for NUL bytes from chunkFileNames/entryFileNames (#8644) by @IWANABETHATGUY - dce-only minify should not set NODE_ENV to production (#8651) by @IWANABETHATGUY ### 🚜 Refactor - rust: remove dead `CrossModuleOptimizationConfig::side_effects_free_function_optimization` (#8673) by @Dunqing - rust: simplify `cross_module_optimization` by removing redundant scope tracking (#8672) by @Dunqing - simplify string repeat in guess_indentor (#8753) by @IWANABETHATGUY - consolidate custom magic-string tests into one file (#8696) by @IWANABETHATGUY - extract CJS bailout checks from include_symbol (#8683) by @IWANABETHATGUY - rust: remove `BindingIdentifierExt` to use `BindingIdentifier::symbol_id()` instead (#8667) by @Dunqing - bench: add bench_preset helper and inline presets (#8658) by @Boshen - rust: filter external modules from entries instead of mapping bit positions (#8637) by @Dunqing ### 📚 Documentation - clarify watch mode behavior and its limitations (#8751) by @sapphi-red - add external link icon to GitHub button in Hero section (#8731) by @thisisnkc - guide: clarify that `inject` option is only conceptually similar to esbuild's one (#8743) by @sapphi-red - meta/design: add `devtools.md` (#8663) by @hyf0 - add viteplus alpha announcement banner (#8668) by @shulaoda ### ⚡ Performance - rolldown: some minor perf optimization found by autoresearch (#8730) by @Brooooooklyn - replace Vec allocation with lazy iterator in find_hash_placeholders (#8703) by @Boshen - replace TypedDashMap with TypedMap in CustomField (#8708) by @Boshen - bench: remove scan benchmark binary to halve LTO link time (#8694) by @Boshen ### 🧪 Testing - watch: increase timeout for error output (#8766) by @sapphi-red - vite-tests: remove JS plugin tests (#8767) by @sapphi-red - watch: add CLI exit code test (#8752) by @sapphi-red - normalize paths on Windows even if `resolve.symlinks` is false (#8483) by @sapphi-red ### ⚙️ Miscellaneous Tasks - correct comment in bundle-analyzer-plugin.ts (#8770) by @origami-z - upgrade oxc to 0.120.0 (#8764) by @Boshen - enable all test for `reset` category in MagicString.test.ts (#8749) by @IWANABETHATGUY - deps: update test262 submodule for tests (#8742) by @sapphi-red - deps: update oxc apps (#8734) by @renovate[bot] - deps: update softprops/action-gh-release action to v2.6.1 (#8724) by @renovate[bot] - deps: update npm packages (major) (#8722) by @renovate[bot] - deps: update github-actions (major) (#8721) by @renovate[bot] - deps: update softprops/action-gh-release action to v2.6.0 (#8720) by @renovate[bot] - deps: update npm packages (#8718) by @renovate[bot] - deps: update rust crates (#8717) by @renovate[bot] - deps: update github-actions (#8716) by @renovate[bot] - deps: update dependency oxlint-tsgolint to v0.17.0 (#8713) by @renovate[bot] - deps: bump cargo-shear to v1.11.2 (#8711) by @Boshen - use org level `CODE_OF_CONDUCT.md` (#8706) by @sapphi-red - fix cache key mismatch and remove redundant cache saves (#8695) by @Boshen - deps: update oxc apps (#8692) by @renovate[bot] - deps: update oxc apps (#8649) by @renovate[bot] - should do matrix out side of reusable workflows 2 (#8691) by @hyf0 - should do matrix out side of reusable workflows (#8690) by @hyf0 - deps: update dependency rolldown-plugin-dts to v0.22.5 (#8689) by @renovate[bot] - upgrade oxc to 0.119.0 and oxc_resolver to 11.19.1 (#8686) by @Boshen - correct if condition of `type-check` job (#8677) by @hyf0 - Gate CI type-check job on node changes (#8669) by @Copilot - benchmark: improve codspeed build (#8665) by @Boshen - deps: update oxc to v0.118.0 (#8650) by @renovate[bot] - deps: update crate-ci/typos action to v1.44.0 (#8647) by @renovate[bot] - deps: update oxc resolver to v11.19.1 (#8646) by @renovate[bot] - deps: update dependency rust to v1.94.0 (#8648) by @renovate[bot] - deps: update dependency rolldown-plugin-dts to v0.22.4 (#8645) by @renovate[bot] ###◀️ Revert - Revert "ci: Gate CI type-check job on node changes" (#8674) by @hyf0 - "chore(deps): update dependency rust to v1.94.0 (#8648)" (#8660) by @shulaoda ### ❤️ New Contributors * @origami-z made their first contribution in [#8770](#8770) * @drewolson made their first contribution in [#8741](#8741) * @thisisnkc made their first contribution in [#8731](#8731) Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>

Pass
yarn_pnpoption where needed but was missing.