From 01415db2252dfc7a0797380b3f561948edea7802 Mon Sep 17 00:00:00 2001 From: Liang Kui Date: Sun, 4 Sep 2022 23:52:24 +0800 Subject: [PATCH 1/2] refactor: config hook helper function --- packages/vite/src/node/config.ts | 47 ++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 4fb0fcc9a15a93..fcdb5918ce996b 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -442,16 +442,7 @@ export async function resolveConfig( // run config hooks const userPlugins = [...prePlugins, ...normalPlugins, ...postPlugins] - for (const p of getSortedPluginsByHook('config', userPlugins)) { - const hook = p.config - const handler = hook && 'handler' in hook ? hook.handler : hook - if (handler) { - const res = await handler(config, configEnv) - if (res) { - config = mergeConfig(config, res) - } - } - } + config = await mergeHookConfig(config, userPlugins, configEnv) if (process.env.VITE_TEST_WITHOUT_PLUGIN_COMMONJS) { config = mergeConfig(config, { @@ -611,16 +602,11 @@ export async function resolveConfig( ...workerNormalPlugins, ...workerPostPlugins ] - for (const p of getSortedPluginsByHook('config', workerUserPlugins)) { - const hook = p.config - const handler = hook && 'handler' in hook ? hook.handler : hook - if (handler) { - const res = await handler(workerConfig, configEnv) - if (res) { - workerConfig = mergeConfig(workerConfig, res) - } - } - } + workerConfig = await mergeHookConfig( + workerConfig, + workerUserPlugins, + configEnv + ) const resolvedWorkerOptions: ResolveWorkerOptions = { format: workerConfig.worker?.format || 'iife', plugins: [], @@ -1089,6 +1075,27 @@ async function loadConfigFromBundledFile( } } +async function mergeHookConfig( + config: InlineConfig, + plugins: Plugin[], + configEnv: ConfigEnv +): Promise { + let conf = config + + for (const p of getSortedPluginsByHook('config', plugins)) { + const hook = p.config + const handler = hook && 'handler' in hook ? hook.handler : hook + if (handler) { + const res = await handler(conf, configEnv) + if (res) { + conf = mergeConfig(conf, res) + } + } + } + + return conf +} + export function getDepOptimizationConfig( config: ResolvedConfig, ssr: boolean From bcce868878639fc012bf4fa4a1d6a6057092af1f Mon Sep 17 00:00:00 2001 From: Liang Kui Date: Mon, 5 Sep 2022 10:04:18 +0800 Subject: [PATCH 2/2] chore: rename mergeConfigHook to runConfigHook --- packages/vite/src/node/config.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index fcdb5918ce996b..829c47fee07abf 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -442,7 +442,7 @@ export async function resolveConfig( // run config hooks const userPlugins = [...prePlugins, ...normalPlugins, ...postPlugins] - config = await mergeHookConfig(config, userPlugins, configEnv) + config = await runConfigHook(config, userPlugins, configEnv) if (process.env.VITE_TEST_WITHOUT_PLUGIN_COMMONJS) { config = mergeConfig(config, { @@ -602,11 +602,7 @@ export async function resolveConfig( ...workerNormalPlugins, ...workerPostPlugins ] - workerConfig = await mergeHookConfig( - workerConfig, - workerUserPlugins, - configEnv - ) + workerConfig = await runConfigHook(workerConfig, workerUserPlugins, configEnv) const resolvedWorkerOptions: ResolveWorkerOptions = { format: workerConfig.worker?.format || 'iife', plugins: [], @@ -1075,7 +1071,7 @@ async function loadConfigFromBundledFile( } } -async function mergeHookConfig( +async function runConfigHook( config: InlineConfig, plugins: Plugin[], configEnv: ConfigEnv