From 3e71ffae91fec10ddb5daba0b6681055c3fd3751 Mon Sep 17 00:00:00 2001 From: Eray Bulut Date: Sat, 18 Jan 2025 23:29:55 +0300 Subject: [PATCH] fix(hmr): improve case sensitivity in file checks and clean up debug output --- packages/vite/src/node/server/hmr.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/vite/src/node/server/hmr.ts b/packages/vite/src/node/server/hmr.ts index 8d3d83b39fcf1a..b094bacdba9450 100644 --- a/packages/vite/src/node/server/hmr.ts +++ b/packages/vite/src/node/server/hmr.ts @@ -10,7 +10,7 @@ import type { InvokeSendData, } from '../../shared/invokeMethods' import { CLIENT_DIR } from '../constants' -import { createDebugger, normalizePath } from '../utils' +import { createDebugger, normalizePath, hasCorrectCase } from '../utils' import type { InferCustomEventPayload, ViteDevServer } from '..' import { getHookHandler } from '../plugins' import { isCSSRequest } from '../plugins/css' @@ -379,18 +379,19 @@ export async function handleHMRUpdate( ): Promise { const { config } = server const mixedModuleGraph = ignoreDeprecationWarnings(() => server.moduleGraph) - const environments = Object.values(server.environments) const shortFile = getShortName(file, config.root) const isConfig = file === config.configFile const isConfigDependency = config.configFileDependencies.some( - (name) => file === name, + (name) => name.toLowerCase() === file.toLowerCase(), ) const isEnv = config.inlineConfig.envFile !== false && - getEnvFilesForMode(config.mode, config.envDir).includes(file) + getEnvFilesForMode(config.mode, config.envDir).some( + (envFile) => envFile.toLowerCase() === file.toLowerCase() + ) if (isConfig || isConfigDependency || isEnv) { // auto restart server debugHmr?.(`[config change] ${colors.dim(shortFile)}`) @@ -701,7 +702,7 @@ export function updateModules( environment.logger.info( colors.green(`hmr update `) + - colors.dim([...new Set(updates.map((u) => u.path))].join(', ')), + colors.dim([...new Set(updates.map((u) => u.path))].join(', ')), { clear: !afterInvalidation, timestamp: true }, ) hot.send({ @@ -890,7 +891,7 @@ function isNodeWithinCircularImports( ] debugHmr( colors.yellow(`circular imports detected: `) + - importChain.map((m) => colors.dim(m.url)).join(' -> '), + importChain.map((m) => colors.dim(m.url)).join(' -> '), ) } return true @@ -1071,7 +1072,7 @@ export function normalizeHmrUrl(url: string): string { function error(pos: number) { const err = new Error( `import.meta.hot.accept() can only accept string literals or an ` + - `Array of string literals.`, + `Array of string literals.`, ) as RollupError err.pos = pos throw err