diff --git a/demos/turbopack-next15/.gitignore b/demos/turbopack-next/.gitignore similarity index 100% rename from demos/turbopack-next15/.gitignore rename to demos/turbopack-next/.gitignore diff --git a/demos/turbopack-next15/README.md b/demos/turbopack-next/README.md similarity index 100% rename from demos/turbopack-next15/README.md rename to demos/turbopack-next/README.md diff --git a/demos/turbopack-next15/eslint.config.mjs b/demos/turbopack-next/eslint.config.mjs similarity index 100% rename from demos/turbopack-next15/eslint.config.mjs rename to demos/turbopack-next/eslint.config.mjs diff --git a/demos/turbopack-next15/next.config.ts b/demos/turbopack-next/next.config.ts similarity index 100% rename from demos/turbopack-next15/next.config.ts rename to demos/turbopack-next/next.config.ts diff --git a/demos/turbopack-next/package.json b/demos/turbopack-next/package.json new file mode 100644 index 00000000..e3e8a778 --- /dev/null +++ b/demos/turbopack-next/package.json @@ -0,0 +1,30 @@ +{ + "name": "turbopack-next", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev --turbopack", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "next": "16.0.1", + "react": "19.2.0", + "react-dom": "19.2.0" + }, + "devDependencies": { + "@eslint/eslintrc": "^3.3.1", + "@mdx-js/loader": "^3.1.1", + "@next/mdx": "16.0.1", + "@tailwindcss/postcss": "^4.1.16", + "@types/node": "^24.10.0", + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.2", + "code-inspector-plugin": "workspace:^", + "eslint": "^9.39.1", + "eslint-config-next": "16.0.1", + "tailwindcss": "^4.1.16", + "typescript": "^5.9.3" + } +} diff --git a/demos/turbopack-next15/postcss.config.mjs b/demos/turbopack-next/postcss.config.mjs similarity index 100% rename from demos/turbopack-next15/postcss.config.mjs rename to demos/turbopack-next/postcss.config.mjs diff --git a/demos/turbopack-next15/public/file.svg b/demos/turbopack-next/public/file.svg similarity index 100% rename from demos/turbopack-next15/public/file.svg rename to demos/turbopack-next/public/file.svg diff --git a/demos/turbopack-next15/public/globe.svg b/demos/turbopack-next/public/globe.svg similarity index 100% rename from demos/turbopack-next15/public/globe.svg rename to demos/turbopack-next/public/globe.svg diff --git a/demos/turbopack-next15/public/next.svg b/demos/turbopack-next/public/next.svg similarity index 100% rename from demos/turbopack-next15/public/next.svg rename to demos/turbopack-next/public/next.svg diff --git a/demos/turbopack-next15/public/vercel.svg b/demos/turbopack-next/public/vercel.svg similarity index 100% rename from demos/turbopack-next15/public/vercel.svg rename to demos/turbopack-next/public/vercel.svg diff --git a/demos/turbopack-next15/public/window.svg b/demos/turbopack-next/public/window.svg similarity index 100% rename from demos/turbopack-next15/public/window.svg rename to demos/turbopack-next/public/window.svg diff --git a/demos/turbopack-next15/src/app/favicon.ico b/demos/turbopack-next/src/app/favicon.ico similarity index 100% rename from demos/turbopack-next15/src/app/favicon.ico rename to demos/turbopack-next/src/app/favicon.ico diff --git a/demos/turbopack-next15/src/app/globals.css b/demos/turbopack-next/src/app/globals.css similarity index 100% rename from demos/turbopack-next15/src/app/globals.css rename to demos/turbopack-next/src/app/globals.css diff --git a/demos/turbopack-next15/src/app/layout.tsx b/demos/turbopack-next/src/app/layout.tsx similarity index 100% rename from demos/turbopack-next15/src/app/layout.tsx rename to demos/turbopack-next/src/app/layout.tsx diff --git a/demos/turbopack-next15/src/app/mdx/page.mdx b/demos/turbopack-next/src/app/mdx/page.mdx similarity index 100% rename from demos/turbopack-next15/src/app/mdx/page.mdx rename to demos/turbopack-next/src/app/mdx/page.mdx diff --git a/demos/turbopack-next15/src/app/page.tsx b/demos/turbopack-next/src/app/page.tsx similarity index 100% rename from demos/turbopack-next15/src/app/page.tsx rename to demos/turbopack-next/src/app/page.tsx diff --git a/demos/turbopack-next15/src/app/welcome.mdx b/demos/turbopack-next/src/app/welcome.mdx similarity index 100% rename from demos/turbopack-next15/src/app/welcome.mdx rename to demos/turbopack-next/src/app/welcome.mdx diff --git a/demos/turbopack-next15/tsconfig.json b/demos/turbopack-next/tsconfig.json similarity index 56% rename from demos/turbopack-next15/tsconfig.json rename to demos/turbopack-next/tsconfig.json index c1334095..b575f7da 100644 --- a/demos/turbopack-next15/tsconfig.json +++ b/demos/turbopack-next/tsconfig.json @@ -1,7 +1,11 @@ { "compilerOptions": { "target": "ES2017", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -11,7 +15,7 @@ "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true, "plugins": [ { @@ -19,9 +23,19 @@ } ], "paths": { - "@/*": ["./src/*"] + "@/*": [ + "./src/*" + ] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] } diff --git a/demos/turbopack-next15/package.json b/demos/turbopack-next15/package.json deleted file mode 100644 index 3a3b75bb..00000000 --- a/demos/turbopack-next15/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "turbopack-next15", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "next dev --turbopack", - "build": "next build", - "start": "next start", - "lint": "next lint" - }, - "dependencies": { - "next": "15.5.3", - "react": "19.1.1", - "react-dom": "19.1.1" - }, - "devDependencies": { - "@eslint/eslintrc": "^3.3.1", - "@mdx-js/loader": "^3.1.1", - "@next/mdx": "15.5.3", - "@tailwindcss/postcss": "^4.1.13", - "@types/node": "^24.3.1", - "@types/react": "^19.1.12", - "@types/react-dom": "^19.1.9", - "code-inspector-plugin": "workspace:^", - "eslint": "^9.35.0", - "eslint-config-next": "15.5.3", - "tailwindcss": "^4.1.13", - "typescript": "^5.9.2" - } -} diff --git a/demos/turbopack-next15/src/middleware.ts b/demos/turbopack-next15/src/middleware.ts deleted file mode 100644 index 916561c1..00000000 --- a/demos/turbopack-next15/src/middleware.ts +++ /dev/null @@ -1,15 +0,0 @@ -// Middleware file to verify turbopack compatibility -// -// ⚠️ This file should be REMOVED once Turbopack fixes the middleware issue ⚠️ -// -// With the improved pattern '**/app/**/*.{jsx,tsx,js,ts,mjs,mts}' in the turbopack plugin, -// code-inspector only processes files in app directories, naturally excluding middleware files. -// This prevents the Turbopack crash issue by default. -// -// This is still a workaround. Track the issues for removal: -// - https://github.com/vercel/next.js/issues/79592 -// - https://github.com/zh-lx/code-inspector/issues/357 - -export function middleware() { - // Empty middleware - its presence is enough to test the workaround -} \ No newline at end of file diff --git a/packages/turbopack/src/index.ts b/packages/turbopack/src/index.ts index 7cedad95..e95e9fa3 100644 --- a/packages/turbopack/src/index.ts +++ b/packages/turbopack/src/index.ts @@ -35,32 +35,8 @@ export function TurbopackCodeInspectorPlugin( } const WebpackDistDir = path.resolve(WebpackEntry, '..'); - // according to: https://nextjs.org/docs/app/getting-started/project-structure#routing-files - const validFiles = [ - '*.jsx', - '*.tsx', - 'layout.js', - 'layout.ts', - 'page.js', - 'page.ts', - 'loading.js', - 'loading.ts', - 'not-found.js', - 'not-found.ts', - 'error.js', - 'error.ts', - 'global-error.js', - 'global-error.ts', - 'template.js', - 'template.ts', - 'default.js', - 'default.ts', - ]; - - const matchFiles = `**/{${validFiles.join(',')}}`; - return { - [matchFiles]: { + '**/*.{jsx,tsx,js,ts,mjs,mts}': { loaders: [ { loader: `${WebpackDistDir}/loader.js`, @@ -68,7 +44,6 @@ export function TurbopackCodeInspectorPlugin( ...options, record, }, - ...(options.enforcePre === false ? {} : { enforce: 'pre' }), }, { loader: `${WebpackDistDir}/inject-loader.js`, @@ -76,9 +51,8 @@ export function TurbopackCodeInspectorPlugin( ...options, record, }, - enforce: 'pre', }, ], }, }; -} +} \ No newline at end of file