diff --git a/packages/next/src/lib/eslint/runLintCheck.ts b/packages/next/src/lib/eslint/runLintCheck.ts index 9e2d2967b1808..6e11c138d0604 100644 --- a/packages/next/src/lib/eslint/runLintCheck.ts +++ b/packages/next/src/lib/eslint/runLintCheck.ts @@ -369,8 +369,16 @@ export async function runLintCheck( } else { // Check if necessary deps installed, and install any that are missing deps = await hasNecessaryDependencies(baseDir, requiredPackages) - if (deps.missing.length > 0) + if (deps.missing.length > 0) { + deps.missing.forEach((dep) => { + if (dep.pkg === 'eslint') { + // eslint v9 has breaking changes, so lock to 8 until dependency plugins fully support v9. + dep.pkg = 'eslint@^8' + } + }) + await installDependencies(baseDir, deps.missing, true) + } // Write default ESLint config. // Check for /pages and src/pages is to make sure this happens in Next.js folder