@@ -78,6 +78,13 @@ export const canSkipImportAnalysis = (id: string): boolean =>
78
78
const optimizedDepChunkRE = / \/ c h u n k - [ A - Z \d ] { 8 } \. j s /
79
79
const optimizedDepDynamicRE = / - [ A - Z \d ] { 8 } \. j s /
80
80
81
+ const hasImportInQueryParamsRE = / [ ? & ] i m p o r t = ? \b /
82
+
83
+ const hasViteIgnoreRE = / \/ \* \s * @ v i t e - i g n o r e \s * \* \/ /
84
+
85
+ const cleanUpRawUrlRE = / \/ \* [ \s \S ] * ?\* \/ | ( [ ^ \\ : ] | ^ ) \/ \/ .* $ / gm
86
+ const urlIsStringRE = / ^ (?: ' .* ' | " .* " | ` .* ` ) $ /
87
+
81
88
export function isExplicitImportRequired ( url : string ) : boolean {
82
89
return ! isJSRequest ( cleanUrl ( url ) ) && ! isCSSRequest ( url )
83
90
}
@@ -373,7 +380,7 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin {
373
380
// query can break 3rd party plugin's extension checks.
374
381
if (
375
382
( isRelative || isSelfImport ) &&
376
- ! / [ ? & ] i m p o r t = ? \b / . test ( url ) &&
383
+ ! hasImportInQueryParamsRE . test ( url ) &&
377
384
! url . match ( DEP_VERSION_RE )
378
385
) {
379
386
const versionMatch = importer . match ( DEP_VERSION_RE )
@@ -613,7 +620,7 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin {
613
620
} else if ( ! importer . startsWith ( clientDir ) ) {
614
621
if ( ! importer . includes ( 'node_modules' ) ) {
615
622
// check @vite -ignore which suppresses dynamic import warning
616
- const hasViteIgnore = / \/ \* \s * @ v i t e - i g n o r e \s * \* \/ / . test (
623
+ const hasViteIgnore = hasViteIgnoreRE . test (
617
624
// complete expression inside parens
618
625
source . slice ( dynamicIndex + 1 , end ) ,
619
626
)
@@ -637,11 +644,9 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin {
637
644
}
638
645
639
646
if ( ! ssr ) {
640
- const url = rawUrl
641
- . replace ( / \/ \* [ \s \S ] * ?\* \/ | ( [ ^ \\ : ] | ^ ) \/ \/ .* $ / gm, '' )
642
- . trim ( )
647
+ const url = rawUrl . replace ( cleanUpRawUrlRE , '' ) . trim ( )
643
648
if (
644
- ! / ^ (?: ' . * ' | " . * " | ` . * ` ) $ / . test ( url ) ||
649
+ ! urlIsStringRE . test ( url ) ||
645
650
isExplicitImportRequired ( url . slice ( 1 , - 1 ) )
646
651
) {
647
652
needQueryInjectHelper = true
0 commit comments