@@ -3,7 +3,7 @@ import path from 'node:path'
33import { performance } from 'node:perf_hooks'
44import getEtag from 'etag'
55import convertSourceMap from 'convert-source-map'
6- import type { SourceDescription , SourceMap } from 'rollup'
6+ import type { PartialResolvedId , SourceDescription , SourceMap } from 'rollup'
77import colors from 'picocolors'
88import type { ModuleNode , ViteDevServer } from '..'
99import {
@@ -141,13 +141,22 @@ async function doTransform(
141141 return cached
142142 }
143143
144+ const resolved = module
145+ ? undefined
146+ : ( await pluginContainer . resolveId ( url , undefined , { ssr } ) ) ?? undefined
147+
144148 // resolve
145- const id =
146- module ?. id ??
147- ( await pluginContainer . resolveId ( url , undefined , { ssr } ) ) ?. id ??
148- url
149+ const id = module ?. id ?? resolved ?. id ?? url
149150
150- const result = loadAndTransform ( id , url , server , options , timestamp )
151+ const result = loadAndTransform (
152+ id ,
153+ url ,
154+ server ,
155+ options ,
156+ timestamp ,
157+ module ,
158+ resolved ,
159+ )
151160
152161 getDepsOptimizer ( config , ssr ) ?. delayDepsOptimizerUntil ( id , ( ) => result )
153162
@@ -160,6 +169,8 @@ async function loadAndTransform(
160169 server : ViteDevServer ,
161170 options : TransformOptions ,
162171 timestamp : number ,
172+ mod ?: ModuleNode ,
173+ resolved ?: PartialResolvedId ,
163174) {
164175 const { config, pluginContainer, moduleGraph, watcher } = server
165176 const { root, logger } = config
@@ -243,7 +254,7 @@ async function loadAndTransform(
243254 throw err
244255 }
245256 // ensure module in graph after successful load
246- const mod = await moduleGraph . ensureEntryFromUrl ( url , ssr )
257+ mod ?? = await moduleGraph . _ensureEntryFromUrl ( url , ssr , undefined , resolved )
247258 ensureWatchedFile ( watcher , mod . file , root )
248259
249260 // transform
0 commit comments