diff --git a/packages/next/build/index.ts b/packages/next/build/index.ts index 061b19351fe1a0e..cf26b1dfcd9fe02 100644 --- a/packages/next/build/index.ts +++ b/packages/next/build/index.ts @@ -176,7 +176,7 @@ export default async function build( telemetry.record(events) ) - const ignoreTypeScriptErrors = Boolean(config.typescript?.ignoreBuildErrors) + const ignoreTypeScriptErrors = Boolean(config.typescript.ignoreBuildErrors) const typeCheckStart = process.hrtime() const typeCheckingSpinner = createSpinner({ prefixText: `${Log.prefixes.info} ${ @@ -216,7 +216,7 @@ export default async function build( typeCheckingSpinner.stopAndPersist() } - const ignoreESLint = Boolean(config.eslint?.ignoreDuringBuilds) + const ignoreESLint = Boolean(config.eslint.ignoreDuringBuilds) const eslintCacheDir = path.join(cacheDir, 'eslint/') if (!ignoreESLint && runLint) { await nextBuildSpan diff --git a/packages/next/server/config-shared.ts b/packages/next/server/config-shared.ts index 48d577978e2f3cd..d62edf36c62bfd2 100644 --- a/packages/next/server/config-shared.ts +++ b/packages/next/server/config-shared.ts @@ -29,10 +29,16 @@ export interface ESLintConfig { ignoreDuringBuilds?: boolean } +export interface TypeScriptConfig { + /** Do not run TypeScript during production builds (`next build`). */ + ignoreBuildErrors?: boolean +} + export type NextConfig = { [key: string]: any } & { i18n?: I18NConfig | null eslint?: ESLintConfig + typescript?: TypeScriptConfig headers?: () => Promise rewrites?: () => Promise< @@ -139,6 +145,12 @@ export const defaultConfig: NextConfig = { env: {}, webpack: null, webpackDevMiddleware: null, + eslint: { + ignoreDuringBuilds: false, + }, + typescript: { + ignoreBuildErrors: false, + }, distDir: '.next', cleanDistDir: true, assetPrefix: '',