From e715d41a53effd0986c048902f58f75a14dcdda3 Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 10 May 2022 14:18:28 +0800 Subject: [PATCH] fix: edge case --- packages/vite/src/node/plugins/dynamicImportVars.ts | 6 +++--- packages/vite/src/node/utils.ts | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/vite/src/node/plugins/dynamicImportVars.ts b/packages/vite/src/node/plugins/dynamicImportVars.ts index 78fac22ce1c5d7..f47abe7d22c454 100644 --- a/packages/vite/src/node/plugins/dynamicImportVars.ts +++ b/packages/vite/src/node/plugins/dynamicImportVars.ts @@ -4,7 +4,7 @@ import { init, parse as parseImports } from 'es-module-lexer' import type { ImportSpecifier } from 'es-module-lexer' import type { Plugin } from '../plugin' import type { ResolvedConfig } from '../config' -import { normalizePath, parseRequest } from '../utils' +import { normalizePath, parseRequest, requestQuerySplitRE } from '../utils' import { parse as parseJS } from 'acorn' import { createFilter } from '@rollup/pluginutils' import { dynamicImportToGlob } from '@rollup/plugin-dynamic-import-vars' @@ -51,8 +51,8 @@ function parseDynamicImportPattern( return null } - const [userPattern] = userPatternQuery.split('?', 2) - const [rawPattern] = filename.split('?', 2) + const [userPattern] = userPatternQuery.split(requestQuerySplitRE, 2) + const [rawPattern] = filename.split(requestQuerySplitRE, 2) if (rawQuery?.raw !== undefined) { globParams = { as: 'raw' } diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index ddcaced9832bc1..37f336f012abaf 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -723,6 +723,7 @@ export function toUpperCaseDriveLetter(pathName: string): string { export const multilineCommentsRE = /\/\*(.|[\r\n])*?\*\//gm export const singlelineCommentsRE = /\/\/.*/g +export const requestQuerySplitRE = /\?(?!.*[\/|\}])/ export const usingDynamicImport = typeof jest === 'undefined' /**