From da3dfdf4aad9b6424f7998c9dbc42a2f816892ae Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 7 Jan 2021 10:03:26 -0500 Subject: [PATCH] refactor: ensure normalized ids during dev also avoid root check false positive close #1378 --- packages/vite/src/node/plugins/importsAnalysis.ts | 7 +++---- packages/vite/src/node/server/pluginContainer.ts | 12 +++++++----- 2 files changed, 10 insertions(+), 9 deletions(-) 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) {