diff --git a/packages/vite/src/node/plugins/importsAnalysis.ts b/packages/vite/src/node/plugins/importsAnalysis.ts index f29221e4124592..416145b7c6e9dd 100644 --- a/packages/vite/src/node/plugins/importsAnalysis.ts +++ b/packages/vite/src/node/plugins/importsAnalysis.ts @@ -14,7 +14,6 @@ import { isDataUrl, isExternalUrl, isJSRequest, - normalizePath, prettifyUrl, timeFrom } from '../utils' @@ -88,7 +87,7 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { }, async transform(source, importer) { - const prettyImporter = prettifyUrl(normalizePath(importer), config.root) + const prettyImporter = prettifyUrl(importer, config.root) if (canSkip(importer)) { isDebug && debugRewrite(chalk.dim(`[skipped] ${prettyImporter}`)) @@ -241,12 +240,12 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { // normalize all imports into resolved URLs // e.g. `import 'foo'` -> `import '/@fs/.../node_modules/foo/index.js` if (url !== resolved.id) { - if (resolved.id.startsWith(config.root)) { + if (resolved.id.startsWith(config.root + '/')) { // in root: infer short absolute path from root url = resolved.id.slice(config.root.length) } else if (fs.existsSync(cleanUrl(resolved.id))) { // exists but out of root: rewrite to absolute /@fs/ paths - url = FS_PREFIX + normalizePath(resolved.id) + url = FS_PREFIX + resolved.id } else { url = resolved.id } diff --git a/packages/vite/src/node/server/pluginContainer.ts b/packages/vite/src/node/server/pluginContainer.ts index 70361fb95aeaae..d3d46e8e2f2797 100644 --- a/packages/vite/src/node/server/pluginContainer.ts +++ b/packages/vite/src/node/server/pluginContainer.ts @@ -57,6 +57,7 @@ import { FSWatcher } from 'chokidar' import { createDebugger, generateCodeFrame, + normalizePath, numberToPos, prettifyUrl, timeFrom @@ -415,10 +416,6 @@ export async function createPluginContainer( break } - if (id) { - partial.id = id - } - nestedResolveCall-- if ( isDebug && @@ -436,7 +433,12 @@ export async function createPluginContainer( } } - return id ? (partial as PartialResolvedId) : null + if (id) { + partial.id = normalizePath(id) + return partial as PartialResolvedId + } else { + return null + } }, async load(id) {