@@ -101,47 +101,38 @@ export function plugins({
101101}
102102
103103function applyTurbopackOptions ( nextConfig : NextConfig ) : void {
104- // Configure Turbopack to apply Babel transformation to TypeScript/JavaScript files
105- // Docs: https://nextjs.org/docs/app/api-reference/next-config-js/turbopack
106-
104+ ( nextConfig as any ) . turbopack ??= { } ;
105+ ( nextConfig as any ) . turbopack . rules ??= { } ;
106+
107+ const rules = ( nextConfig as any ) . turbopack . rules ;
108+
107109 const pagesDir = findPagesDir ( process . cwd ( ) ) ;
110+
108111 const basePath = ( nextConfig . basePath as string ) || '/' ;
109- const loaderPath = require . resolve ( '../dist/turbopackLoader' ) ;
110-
111- const loaderConfig = {
112- browser : {
113- as : '*.tsx' ,
114- loaders : [
115- {
116- loader : loaderPath ,
117- options : {
118- isServer : false ,
119- pagesDir,
120- isAppDir : false ,
121- basePath,
122- } ,
123- } ,
124- ] ,
125- } ,
126- default : {
127- as : '*.tsx' ,
128- loaders : [
129- {
130- loader : loaderPath ,
131- options : {
132- isServer : true ,
133- pagesDir,
134- isAppDir : false ,
135- basePath,
136- } ,
137- } ,
138- ] ,
139- } ,
112+
113+ const glob = '{./src/pages,./pages/}/**/*.{ts,tsx,js,jsx}' ;
114+ rules [ glob ] ??= { } ;
115+ const options : RpcPluginOptions = {
116+ isServer : false ,
117+ pagesDir,
118+ isAppDir : false ,
119+ basePath,
140120 } ;
141-
142- ( nextConfig as any ) . turbopack ??= { } ;
143- ( nextConfig as any ) . turbopack . rules ??= { } ;
144- ( nextConfig as any ) . turbopack . rules [ '**/*.{ts,tsx,js,jsx}' ] = loaderConfig ;
121+ const globbed : any = rules [ glob ] ;
122+ globbed . browser ??= { } ;
123+ globbed . browser . as = '*.tsx' ;
124+ globbed . browser . loaders ??= [ ] ;
125+ globbed . browser . loaders . push ( {
126+ loader : require . resolve ( '../dist/turbopackLoader' ) ,
127+ options : { ...options , isServer : false } ,
128+ } ) ;
129+ globbed . default ??= { } ;
130+ globbed . default . as = '*.tsx' ;
131+ globbed . default . loaders ??= [ ] ;
132+ globbed . default . loaders . push ( {
133+ loader : require . resolve ( '../dist/turbopackLoader' ) ,
134+ options : { ...options , isServer : true } ,
135+ } ) ;
145136}
146137
147138// taken from https://github.com/vercel/next.js/blob/v12.1.5/packages/next/lib/find-pages-dir.ts
0 commit comments