From 402e0b51fb494da3341378a88e7a9b26ab679a44 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Tue, 29 Aug 2023 15:18:31 +0200 Subject: [PATCH 1/2] Move getBabelConfigFile to separate file --- .../next/src/build/get-babel-config-file.ts | 30 +++++++++++++++++++ packages/next/src/build/webpack-config.ts | 27 ----------------- packages/next/src/lib/turbopack-warning.ts | 2 +- 3 files changed, 31 insertions(+), 28 deletions(-) create mode 100644 packages/next/src/build/get-babel-config-file.ts diff --git a/packages/next/src/build/get-babel-config-file.ts b/packages/next/src/build/get-babel-config-file.ts new file mode 100644 index 0000000000000..29fa7584f4295 --- /dev/null +++ b/packages/next/src/build/get-babel-config-file.ts @@ -0,0 +1,30 @@ +import { fileExists } from '../lib/file-exists' +import { join } from 'path' + +const BABEL_CONFIG_FILES = [ + '.babelrc', + '.babelrc.json', + '.babelrc.js', + '.babelrc.mjs', + '.babelrc.cjs', + 'babel.config.js', + 'babel.config.json', + 'babel.config.mjs', + 'babel.config.cjs', +] + +export async function getBabelConfigFile( + dir: string +): Promise { + const babelConfigFile = await BABEL_CONFIG_FILES.reduce( + async (memo: Promise, filename) => { + const configFilePath = join(dir, filename) + return ( + (await memo) || + ((await fileExists(configFilePath)) ? configFilePath : undefined) + ) + }, + Promise.resolve(undefined) + ) + return babelConfigFile +} diff --git a/packages/next/src/build/webpack-config.ts b/packages/next/src/build/webpack-config.ts index d0d1e6a2af398..02e76a131341c 100644 --- a/packages/next/src/build/webpack-config.ts +++ b/packages/next/src/build/webpack-config.ts @@ -18,7 +18,6 @@ import { RSC_ACTION_VALIDATE_ALIAS, WEBPACK_RESOURCE_QUERIES, } from '../lib/constants' -import { fileExists } from '../lib/file-exists' import { CustomRoutes } from '../lib/load-custom-routes.js' import { isEdgeRuntime } from '../lib/is-edge-runtime' import { @@ -118,32 +117,6 @@ const mainFieldsPerCompiler: Record = { [COMPILER_NAMES.edgeServer]: edgeConditionNames, } -const BABEL_CONFIG_FILES = [ - '.babelrc', - '.babelrc.json', - '.babelrc.js', - '.babelrc.mjs', - '.babelrc.cjs', - 'babel.config.js', - 'babel.config.json', - 'babel.config.mjs', - 'babel.config.cjs', -] - -export const getBabelConfigFile = async (dir: string) => { - const babelConfigFile = await BABEL_CONFIG_FILES.reduce( - async (memo: Promise, filename) => { - const configFilePath = path.join(dir, filename) - return ( - (await memo) || - ((await fileExists(configFilePath)) ? configFilePath : undefined) - ) - }, - Promise.resolve(undefined) - ) - return babelConfigFile -} - // Support for NODE_PATH const nodePathList = (process.env.NODE_PATH || '') .split(process.platform === 'win32' ? ';' : ':') diff --git a/packages/next/src/lib/turbopack-warning.ts b/packages/next/src/lib/turbopack-warning.ts index e2f9470b2a208..a7202f3208dcc 100644 --- a/packages/next/src/lib/turbopack-warning.ts +++ b/packages/next/src/lib/turbopack-warning.ts @@ -78,7 +78,7 @@ export async function validateTurboNextConfig({ const { getPkgManager } = require('../lib/helpers/get-pkg-manager') as typeof import('../lib/helpers/get-pkg-manager') const { getBabelConfigFile } = - require('../build/webpack-config') as typeof import('../build/webpack-config') + require('../build/get-babel-config-file') as typeof import('../build/get-babel-config-file') const { defaultConfig } = require('../server/config-shared') as typeof import('../server/config-shared') const chalk = From 115f42dfecbe9742465ecddab320ba9ca310ecfc Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Tue, 29 Aug 2023 23:02:06 +0200 Subject: [PATCH 2/2] Update webpack-config.ts --- packages/next/src/build/webpack-config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/next/src/build/webpack-config.ts b/packages/next/src/build/webpack-config.ts index 02e76a131341c..7540912a9500e 100644 --- a/packages/next/src/build/webpack-config.ts +++ b/packages/next/src/build/webpack-config.ts @@ -67,6 +67,7 @@ import { SubresourceIntegrityPlugin } from './webpack/plugins/subresource-integr import { NextFontManifestPlugin } from './webpack/plugins/next-font-manifest-plugin' import { getSupportedBrowsers } from './utils' import { MemoryWithGcCachePlugin } from './webpack/plugins/memory-with-gc-cache-plugin' +import { getBabelConfigFile } from './get-babel-config-file' type ExcludesFalse = (x: T | false) => x is T type ClientEntries = {