From efa6f8dba31baa5d2099c78539b8281722df7af8 Mon Sep 17 00:00:00 2001 From: bluwy Date: Wed, 26 Oct 2022 20:41:55 +0800 Subject: [PATCH 1/2] fix(config): resolve build options with fallback --- packages/vite/src/node/build.ts | 22 +++++++++++++++------- packages/vite/src/node/config.ts | 6 +----- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index f4c14834a2380f..154829b4b6949d 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -50,6 +50,7 @@ import { ensureWatchPlugin } from './plugins/ensureWatch' import { ESBUILD_MODULES_TARGET, VERSION } from './constants' import { resolveChokidarOptions } from './watch' import { completeSystemWrapPlugin } from './plugins/completeSystemWrap' +import { mergeConfig } from './publicUtils' export interface BuildOptions { /** @@ -276,7 +277,6 @@ export interface ResolvedBuildOptions export function resolveBuildOptions( raw: BuildOptions | undefined, - isBuild: boolean, logger: Logger ): ResolvedBuildOptions { const deprecatedPolyfillModulePreload = raw?.polyfillModulePreload @@ -301,8 +301,7 @@ export function resolveBuildOptions( polyfill: true } - const resolved: ResolvedBuildOptions = { - target: 'modules', + const defaultBuildOptions: BuildOptions = { outDir: 'dist', assetsDir: 'assets', assetsInlineLimit: 4096, @@ -321,17 +320,26 @@ export function resolveBuildOptions( ssrManifest: false, reportCompressedSize: true, chunkSizeWarningLimit: 500, - watch: null, - ...raw, + watch: null + } + + const userBuildOptions = raw + ? mergeConfig(defaultBuildOptions, raw) + : defaultBuildOptions + + // @ts-expect-error Fallback options instead of merging + const resolved: ResolvedBuildOptions = { + target: 'modules', + ...userBuildOptions, commonjsOptions: { include: [/node_modules/], extensions: ['.js', '.cjs'], - ...raw?.commonjsOptions + ...userBuildOptions.commonjsOptions }, dynamicImportVarsOptions: { warnOnError: true, exclude: [/node_modules/], - ...raw?.dynamicImportVarsOptions + ...userBuildOptions.dynamicImportVarsOptions }, // Resolve to false | object modulePreload: diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index dff650a1b487fd..ea9de372ed5fee 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -515,11 +515,7 @@ export async function resolveConfig( : './' : resolveBaseUrl(config.base, isBuild, logger) ?? '/' - const resolvedBuildOptions = resolveBuildOptions( - config.build, - isBuild, - logger - ) + const resolvedBuildOptions = resolveBuildOptions(config.build, logger) // resolve cache directory const pkgPath = lookupFile(resolvedRoot, [`package.json`], { pathOnly: true }) From 82b4ff1a3a51066ff38a69f4daa1ae5608f2ee71 Mon Sep 17 00:00:00 2001 From: bluwy Date: Wed, 26 Oct 2022 20:45:12 +0800 Subject: [PATCH 2/2] fix: move cssTarget too --- packages/vite/src/node/build.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 154829b4b6949d..65563735927d0f 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -306,7 +306,6 @@ export function resolveBuildOptions( assetsDir: 'assets', assetsInlineLimit: 4096, cssCodeSplit: !raw?.lib, - cssTarget: false, sourcemap: false, rollupOptions: {}, minify: raw?.ssr ? false : 'esbuild', @@ -330,6 +329,7 @@ export function resolveBuildOptions( // @ts-expect-error Fallback options instead of merging const resolved: ResolvedBuildOptions = { target: 'modules', + cssTarget: false, ...userBuildOptions, commonjsOptions: { include: [/node_modules/],