Skip to content

Commit 21515f1

Browse files
authored
fix(import-analysis): escape quotes (#9729)
1 parent d04784b commit 21515f1

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

packages/vite/src/node/plugins/importAnalysis.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,9 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin {
527527
rewriteDone = true
528528
}
529529
if (!rewriteDone) {
530-
str().overwrite(start, end, isDynamicImport ? `'${url}'` : url, {
530+
let rewrittenUrl = JSON.stringify(url)
531+
if (!isDynamicImport) rewrittenUrl = rewrittenUrl.slice(1, -1)
532+
str().overwrite(start, end, rewrittenUrl, {
531533
contentOnly: true
532534
})
533535
}

packages/vite/src/node/plugins/importAnalysisBuild.ts

+5-8
Original file line numberDiff line numberDiff line change
@@ -291,14 +291,11 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
291291
rewriteDone = true
292292
}
293293
if (!rewriteDone) {
294-
str().overwrite(
295-
start,
296-
end,
297-
isDynamicImport ? `'${file}'` : file,
298-
{
299-
contentOnly: true
300-
}
301-
)
294+
let rewrittenUrl = JSON.stringify(file)
295+
if (!isDynamicImport) rewrittenUrl = rewrittenUrl.slice(1, -1)
296+
str().overwrite(start, end, rewrittenUrl, {
297+
contentOnly: true
298+
})
302299
}
303300
}
304301
}

playground/glob-import/__tests__/glob-import.spec.ts

+6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ const filteredResult = {
1616
},
1717
'./foo.js': {
1818
msg: 'foo'
19+
},
20+
"./quote'.js": {
21+
msg: 'single-quote'
1922
}
2023
}
2124

@@ -62,6 +65,9 @@ const allResult = {
6265
'../baz.json': json
6366
},
6467
msg: 'bar'
68+
},
69+
"/dir/quote'.js": {
70+
msg: 'single-quote'
6571
}
6672
}
6773

playground/glob-import/dir/quote'.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const msg = 'single-quote'

0 commit comments

Comments
 (0)