From db39a862da7fbad48c6f95a87990d866ed085873 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Fri, 29 Sep 2023 13:42:58 +0200 Subject: [PATCH] Add next.config.js options to turbopack warning file --- .vscode/settings.json | 1 + .../crates/next-core/src/next_config.rs | 2 - packages/next/src/lib/turbopack-warning.ts | 104 +++++++++++++----- packages/next/src/server/config-shared.ts | 4 - packages/next/src/server/config.ts | 8 -- 5 files changed, 77 insertions(+), 42 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c2892a71599f..c8298e95c1e1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -67,6 +67,7 @@ "nextjs", "opentelemetry", "Threadsafe", + "Turbopack", "zipkin" ], "grammarly.selectors": [ diff --git a/packages/next-swc/crates/next-core/src/next_config.rs b/packages/next-swc/crates/next-core/src/next_config.rs index 94966c545855..5e876c1f71df 100644 --- a/packages/next-swc/crates/next-core/src/next_config.rs +++ b/packages/next-swc/crates/next-core/src/next_config.rs @@ -495,8 +495,6 @@ pub struct ExperimentalConfig { server_source_maps: Option, sri: Option, swc_minify: Option, - /// This option is removed - swc_minify_debug_options: Option<()>, swc_trace_profiling: Option, /// @internal Used by the Next.js internals only. trust_host_header: Option, diff --git a/packages/next/src/lib/turbopack-warning.ts b/packages/next/src/lib/turbopack-warning.ts index 5e4b30525b68..47e4fb8c9c1a 100644 --- a/packages/next/src/lib/turbopack-warning.ts +++ b/packages/next/src/lib/turbopack-warning.ts @@ -4,6 +4,8 @@ import { NextConfig } from '../server/config-shared' import { PHASE_DEVELOPMENT_SERVER } from '../shared/lib/constants' const supportedTurbopackNextConfigOptions = [ + // options that affect compilation + 'output', 'crossOrigin', 'configFileName', 'env', @@ -36,37 +38,94 @@ const supportedTurbopackNextConfigOptions = [ 'skipMiddlewareUrlNormalize', 'skipTrailingSlashRedirect', 'amp', - 'experimental.logging.level', + 'devIndicators', + 'analyticsId', + + // Options that are ignored as they don't affect Turbopack + 'webpack', + 'onDemandEntries', + 'experimental.cpus', + + // Experimental options that affect compilation 'experimental.swcPlugins', + 'experimental.strictNextHead', 'experimental.manualClientBasePath', - 'experimental.optimisticClientCache', 'experimental.middlewarePrefetch', 'experimental.optimizeCss', 'experimental.nextScriptWorkers', + 'experimental.optimisticClientCache', 'experimental.webVitalsAttribution', 'experimental.externalMiddlewareRewritesResolve', - 'experimental.scrollRestoration', 'experimental.serverComponentsExternalPackages', - 'experimental.strictNextHead', - 'experimental.turbo', 'experimental.mdxRs', + 'experimental.turbo', + 'experimental.useDeploymentId', + 'experimental.useDeploymentIdServerActions', + 'experimental.deploymentId', + + // Experimental options that don't affect compilation + 'experimental.proxyTimeout', + 'experimental.caseSensitiveRoutes', + 'experimental.workerThreads', + 'experimental.isrFlushToDisk', + 'experimental.logging.level', + 'experimental.logging.fullUrl', + 'experimental.scrollRestoration', 'experimental.forceSwcTransforms', 'experimental.serverActionsBodySizeLimit', 'experimental.memoryBasedWorkersCount', - // options below are not really supported, but ignored - 'webpack', - 'devIndicators', - 'onDemandEntries', - 'excludeDefaultMomentLocales', 'experimental.clientRouterFilterRedirects', - 'experimental.cpus', - 'experimental.proxyTimeout', - 'experimental.isrFlushToDisk', - 'experimental.workerThreads', - 'experimental.caseSensitiveRoutes', + 'experimental.webpackBuildWorker', + 'experimental.appDocumentPreloading', + 'experimental.incrementalCacheHandlerPath', + 'experimental.amp', + 'experimental.disableOptimizedLoading', + 'experimental.isrMemoryCacheSize', + 'experimental.largePageDataBytes', + 'experimental.gzipSize', + + // Left to be implemented + 'excludeDefaultMomentLocales', 'experimental.optimizePackageImports', 'experimental.optimizeServerReact', - 'experimental.webpackBuildWorker', + + // 'compiler.emotion', + // 'compiler.reactRemoveProperties', + // 'compiler.relay', + // 'compiler.removeConsole', + // 'compiler.styledComponents', + // 'experimental.clientRouterFilterAllowedRate', + + // clientRouterFilter is `true` by default currently in config-shared.ts, + // might be removed as an option altogether. + 'experimental.clientRouterFilter', + 'experimental.serverMinification', + 'experimental.serverSourceMaps', + 'experimental.trustHostHeader', + + // 'experimental.adjustFontFallbacks', + // 'experimental.adjustFontFallbacksWithSizeAdjust', + // 'experimental.allowedRevalidateHeaderKeys', + // 'experimental.bundlePagesExternals', + // 'experimental.extensionAlias', + // 'experimental.fallbackNodePolyfills', + // 'experimental.fetchCacheKeyPrefix', + // 'experimental.instrumentationHook', + // 'experimental.ppr', + // 'experimental.serverActions', + // 'experimental.sri.algorithm', + // 'experimental.swcTraceProfiling', + // 'experimental.typedRoutes', + + // Might not be needed for Turbopack + // 'experimental.craCompat', + // 'experimental.disablePostcssPresetEnv', + // 'experimental.esmExternals', + // 'experimental.externalDir', + // This is used to force swc-loader to run regardless of finding Babel. + // 'experimental.forceSwcTransforms', + // 'experimental.fullySpecified', + // 'experimental.urlImports', ] // The following will need to be supported by `next build --turbo` @@ -75,9 +134,7 @@ const prodSpecificTurboNextConfigOptions = [ 'typescript', 'staticPageGenerationTimeout', 'outputFileTracing', - 'output', 'generateBuildId', - 'analyticsId', 'compress', 'productionBrowserSourceMaps', 'optimizeFonts', @@ -85,20 +142,11 @@ const prodSpecificTurboNextConfigOptions = [ 'staticPageGenerationTimeout', 'reactProductionProfiling', 'cleanDistDir', - 'compiler.reactRemoveProperties', - 'compiler.removeConsole', 'experimental.turbotrace', 'experimental.outputFileTracingRoot', 'experimental.outputFileTracingExcludes', 'experimental.outputFileTracingIgnores', - 'experiemental.outputFileTracingIncludes', - 'experimental.gzipSize', - 'experimental.useDeploymentId', - 'experimental.useDeploymentIdServerActions', - 'experimental.deploymentId', - 'experimental.serverMinification', - 'experimental.serverSourceMaps', - 'experimenta.trustHostHeader', + 'experimental.outputFileTracingIncludes', ] // check for babelrc, swc plugins diff --git a/packages/next/src/server/config-shared.ts b/packages/next/src/server/config-shared.ts index a304452f462c..d8108f4158be 100644 --- a/packages/next/src/server/config-shared.ts +++ b/packages/next/src/server/config-shared.ts @@ -222,10 +222,6 @@ export interface ExperimentalConfig { swcTraceProfiling?: boolean forceSwcTransforms?: boolean - /** - * This option is removed - */ - swcMinifyDebugOptions?: never swcPlugins?: Array<[string, Record]> largePageDataBytes?: number /** diff --git a/packages/next/src/server/config.ts b/packages/next/src/server/config.ts index 7e1ff4c3742f..3937011f9c92 100644 --- a/packages/next/src/server/config.ts +++ b/packages/next/src/server/config.ts @@ -375,14 +375,6 @@ function assignDefaults( silent ) - if (typeof result.experimental?.swcMinifyDebugOptions !== 'undefined') { - if (!silent) { - Log.warn( - 'SWC minify debug option is not supported anymore, please remove it from your config.' - ) - } - } - if ((result.experimental as any).outputStandalone) { if (!silent) { Log.warn(