next.js
defac920 - feat(turbopack): add chunkLoadingGlobal config option (#93488)

Commit
7 days ago
feat(turbopack): add chunkLoadingGlobal config option (#93488) ### What? Adds a new `chunkLoadingGlobal` option to the `turbopack` config in `next.config.js` that overrides the global variable name used for Turbopack chunk loading (defaults to `TURBOPACK`). ```js // next.config.js module.exports = { turbopack: { chunkLoadingGlobal: 'myApp', }, } ``` ### Why? When multiple Turbopack-built apps run on the same page (e.g. horizontal micro-frontends), they each try to use `globalThis.TURBOPACK` which causes conflicts. This option allows each app to use its own isolated global, mirroring webpack's `output.chunkLoadingGlobal`. The `chunk_loading_global` method was already wired into Turbopack in #88790 — this PR exposes it via Next.js config. A reason is [vercel/remote-components#239](https://github.com/vercel/remote-components/pull/239), which uses this option to eliminate four brittle `globalThis.TURBOPACK` regex rename transforms in the remote-components runtime. Those transforms target Turbopack's internal variable naming and have already required updates as Turbopack's output format evolved. With `chunkLoadingGlobal` set at build time, Turbopack handles the renaming natively and those transforms become unnecessary. ### How? - `config-shared.ts` / `config-schema.ts` — adds `chunkLoadingGlobal?: string` to `TurbopackOptions` with Zod validation - `next_config.rs` — adds the field to `TurbopackConfig` and a `turbopack_chunk_loading_global()` accessor - `next_client/context.rs` — threads it through `ClientChunkingContextOptions` and calls `builder.chunk_loading_global()` when set - `project.rs` — wires the config into the client chunking context options Only applies to the browser/client chunking context — server and edge runtimes don't have this concept. ### Test plan - `pnpm test-start-turbo test/production/app-dir/turbopack-chunk-loading-global/turbopack-chunk-loading-global.test.ts` <!-- NEXT_JS_LLM_PR --> --------- Co-authored-by: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com>
Author
Parents
Loading