diff --git a/packages/next/server/config-schema.ts b/packages/next/server/config-schema.ts index f9d18748f444..841a57da63fa 100644 --- a/packages/next/server/config-schema.ts +++ b/packages/next/server/config-schema.ts @@ -333,7 +333,14 @@ const configSchema = { type: 'boolean', }, optimizeCss: { - type: 'boolean', + oneOf: [ + { + type: 'boolean', + }, + { + type: 'object', + }, + ] as any, }, outputFileTracingRoot: { minLength: 1, diff --git a/packages/next/server/config-shared.ts b/packages/next/server/config-shared.ts index a1dbbb5110e0..ff38d8e304ca 100644 --- a/packages/next/server/config-shared.ts +++ b/packages/next/server/config-shared.ts @@ -94,7 +94,10 @@ export interface ExperimentalConfig { isrFlushToDisk?: boolean workerThreads?: boolean pageEnv?: boolean - optimizeCss?: boolean + // optimizeCss can be boolean or critters' option object + // Use Record as critters doesn't export its Option type + // https://github.com/GoogleChromeLabs/critters/blob/a590c05f9197b656d2aeaae9369df2483c26b072/packages/critters/src/index.d.ts + optimizeCss?: boolean | Record nextScriptWorkers?: boolean scrollRestoration?: boolean externalDir?: boolean