diff --git a/packages/vite/src/node/cli.ts b/packages/vite/src/node/cli.ts index bb86e1c6e8a34a..aeaaafb697b3b3 100644 --- a/packages/vite/src/node/cli.ts +++ b/packages/vite/src/node/cli.ts @@ -189,8 +189,8 @@ cli configLoader: options.configLoader, logLevel: options.logLevel, clearScreen: options.clearScreen, - optimizeDeps: { force: options.force }, server: cleanGlobalCLIOptions(options), + forceOptimizeDeps: options.force, }) if (!server.httpServer) { diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 1669e2b2920768..00444570cbfdea 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -548,6 +548,7 @@ export interface InlineConfig extends UserConfig { /** @experimental */ configLoader?: 'bundle' | 'runner' envFile?: false + forceOptimizeDeps?: boolean } export interface ResolvedConfig @@ -775,6 +776,7 @@ function resolveEnvironmentOptions( options: EnvironmentOptions, alias: Alias[], preserveSymlinks: boolean, + forceOptimizeDeps: boolean | undefined, logger: Logger, environmentName: string, // Backward compatibility @@ -804,6 +806,7 @@ function resolveEnvironmentOptions( optimizeDeps: resolveDepOptimizationOptions( options.optimizeDeps, resolve.preserveSymlinks, + forceOptimizeDeps, consumer, ), dev: resolveDevEnvironmentOptions( @@ -980,6 +983,7 @@ function resolveResolveOptions( function resolveDepOptimizationOptions( optimizeDeps: DepOptimizationOptions | undefined, preserveSymlinks: boolean, + forceOptimizeDeps: boolean | undefined, consumer: 'client' | 'server' | undefined, ): DepOptimizationOptions { return mergeWithDefaults( @@ -990,6 +994,7 @@ function resolveDepOptimizationOptions( esbuildOptions: { preserveSymlinks, }, + force: forceOptimizeDeps ?? configDefaults.optimizeDeps.force, }, optimizeDeps ?? {}, ) @@ -1202,6 +1207,7 @@ export async function resolveConfig( config.environments[environmentName], resolvedDefaultResolve.alias, resolvedDefaultResolve.preserveSymlinks, + inlineConfig.forceOptimizeDeps, logger, environmentName, config.experimental?.skipSsrTransform, diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index fb5c71ac13a2c0..8dcf3da90675af 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -373,24 +373,36 @@ export async function loadCachedDepOptimizationMetadata( if (cachedMetadata.lockfileHash !== getLockfileHash(environment)) { environment.logger.info( 'Re-optimizing dependencies because lockfile has changed', + { + timestamp: true, + }, ) } else if (cachedMetadata.configHash !== getConfigHash(environment)) { environment.logger.info( 'Re-optimizing dependencies because vite config has changed', + { + timestamp: true, + }, ) } else { - log?.('Hash is consistent. Skipping. Use --force to override.') + log?.( + `(${environment.name}) Hash is consistent. Skipping. Use --force to override.`, + ) // Nothing to commit or cancel as we are using the cache, we only // need to resolve the processing promise so requests can move on return cachedMetadata } } } else { - environment.logger.info('Forced re-optimization of dependencies') + environment.logger.info('Forced re-optimization of dependencies', { + timestamp: true, + }) } // Start with a fresh cache - debug?.(colors.green(`removing old cache dir ${depsCacheDir}`)) + debug?.( + `(${environment.name}) ${colors.green(`removing old cache dir ${depsCacheDir}`)}`, + ) await fsp.rm(depsCacheDir, { recursive: true, force: true }) } diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index 06eaae8ff43dcc..b3c10bccf92456 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -1164,9 +1164,7 @@ async function restartServer(server: ViteDevServer) { let inlineConfig = server.config.inlineConfig if (server._forceOptimizeOnRestart) { inlineConfig = mergeConfig(inlineConfig, { - optimizeDeps: { - force: true, - }, + forceOptimizeDeps: true, }) }