From 8b21c54980e1ace26af5d065e2ffa97ae3ff1094 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 18 Mar 2025 23:00:01 +0000 Subject: [PATCH] fix(vite): don't show interim vite build output files (#31439) --- packages/vite/src/server.ts | 2 +- packages/vite/src/utils/logger.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index 4ca4bb87ca..702e1b7d72 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -131,7 +131,7 @@ export async function buildServer (ctx: ViteBuildContext) { }) } - serverConfig.customLogger = createViteLogger(serverConfig) + serverConfig.customLogger = createViteLogger(serverConfig, { hideOutput: !ctx.nuxt.options.dev }) await ctx.nuxt.callHook('vite:extendConfig', serverConfig, { isClient: false, isServer: true }) diff --git a/packages/vite/src/utils/logger.ts b/packages/vite/src/utils/logger.ts index b81e366273..9e1366688d 100644 --- a/packages/vite/src/utils/logger.ts +++ b/packages/vite/src/utils/logger.ts @@ -4,6 +4,7 @@ import { logger } from '@nuxt/kit' import { colorize } from 'consola/utils' import { hasTTY, isCI } from 'std-env' import type { NuxtOptions } from '@nuxt/schema' +import { relative } from 'pathe' import { useResolveFromPublicAssets } from '../plugins/public-dirs' let duplicateCount = 0 @@ -24,10 +25,11 @@ const logLevelMapReverse: Record, numbe } const RUNTIME_RESOLVE_REF_RE = /^([^ ]+) referenced in/m -export function createViteLogger (config: vite.InlineConfig): vite.Logger { +export function createViteLogger (config: vite.InlineConfig, ctx: { hideOutput?: boolean } = {}): vite.Logger { const loggedErrors = new WeakSet() const canClearScreen = hasTTY && !isCI && config.clearScreen const _logger = createLogger() + const relativeOutDir = relative(config.root!, config.build!.outDir || '') const clear = () => { _logger.clearScreen( // @ts-expect-error silent is a log level but not a valid option for clearScreens @@ -48,6 +50,7 @@ export function createViteLogger (config: vite.InlineConfig): vite.Logger { const id = msg.trim().match(RUNTIME_RESOLVE_REF_RE)?.[1] if (id && resolveFromPublicAssets(id)) { return } } + if (type === 'info' && ctx.hideOutput && msg.includes(relativeOutDir)) { return } } const sameAsLast = lastType === type && lastMsg === msg