Skip to content

Commit 1969d81

Browse files
committed
fix(nextjs): handle webpack detection when using rspack
1 parent 24ecd3a commit 1969d81

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

packages/nextjs/src/config/util.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,11 @@ export function detectActiveBundler(nextJsVersion: string | undefined): 'turbopa
163163
return 'webpack';
164164
}
165165

166+
// Explicit opt-in to webpack (using rspack) via environment variable
167+
if (process.env.NEXT_RSPACK === 'true') {
168+
return 'webpack';
169+
}
170+
166171
// Fallback to version-based default behavior
167172
if (nextJsVersion) {
168173
const turbopackIsDefault = isTurbopackDefaultForVersion(nextJsVersion);

packages/nextjs/test/config/util.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ describe('util', () => {
332332
process.argv = [...originalArgv];
333333
process.env = { ...originalEnv };
334334
delete process.env.TURBOPACK;
335+
delete process.env.NEXT_RSPACK;
335336
});
336337

337338
afterEach(() => {
@@ -349,6 +350,11 @@ describe('util', () => {
349350
expect(util.detectActiveBundler('16.0.0')).toBe('webpack');
350351
});
351352

353+
it('returns webpack when NEXT_RSPACK env var is set', () => {
354+
process.env.NEXT_RSPACK = 'true';
355+
expect(util.detectActiveBundler('16.0.0')).toBe('webpack');
356+
});
357+
352358
it('returns turbopack for Next.js 16+ by default', () => {
353359
expect(util.detectActiveBundler('16.0.0')).toBe('turbopack');
354360
expect(util.detectActiveBundler('17.0.0')).toBe('turbopack');
@@ -388,5 +394,11 @@ describe('util', () => {
388394
process.argv.push('--webpack');
389395
expect(util.detectActiveBundler('15.5.0')).toBe('turbopack');
390396
});
397+
398+
it('prioritizes TURBOPACK env var over NEXT_RSPACK env var', () => {
399+
process.env.TURBOPACK = '1';
400+
process.env.NEXT_RSPACK = 'true';
401+
expect(util.detectActiveBundler('15.5.0')).toBe('turbopack');
402+
});
391403
});
392404
});

0 commit comments

Comments
 (0)