diff --git a/packages/vite/src/node/plugins/importAnalysis.ts b/packages/vite/src/node/plugins/importAnalysis.ts index 7f9c6e7a3ac299..99b7016264b2bc 100644 --- a/packages/vite/src/node/plugins/importAnalysis.ts +++ b/packages/vite/src/node/plugins/importAnalysis.ts @@ -527,7 +527,9 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { rewriteDone = true } if (!rewriteDone) { - str().overwrite(start, end, isDynamicImport ? `'${url}'` : url, { + let rewrittenUrl = JSON.stringify(url) + if (!isDynamicImport) rewrittenUrl = rewrittenUrl.slice(1, -1) + str().overwrite(start, end, rewrittenUrl, { contentOnly: true }) } diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index dee652387bff3b..d78e4c3be77ba7 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -291,14 +291,11 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { rewriteDone = true } if (!rewriteDone) { - str().overwrite( - start, - end, - isDynamicImport ? `'${file}'` : file, - { - contentOnly: true - } - ) + let rewrittenUrl = JSON.stringify(file) + if (!isDynamicImport) rewrittenUrl = rewrittenUrl.slice(1, -1) + str().overwrite(start, end, rewrittenUrl, { + contentOnly: true + }) } } } diff --git a/playground/glob-import/__tests__/glob-import.spec.ts b/playground/glob-import/__tests__/glob-import.spec.ts index 68608875f3c429..078ac0cdd0a6e1 100644 --- a/playground/glob-import/__tests__/glob-import.spec.ts +++ b/playground/glob-import/__tests__/glob-import.spec.ts @@ -16,6 +16,9 @@ const filteredResult = { }, './foo.js': { msg: 'foo' + }, + "./quote'.js": { + msg: 'single-quote' } } @@ -62,6 +65,9 @@ const allResult = { '../baz.json': json }, msg: 'bar' + }, + "/dir/quote'.js": { + msg: 'single-quote' } } diff --git a/playground/glob-import/dir/quote'.js b/playground/glob-import/dir/quote'.js new file mode 100644 index 00000000000000..deb63c3bcad695 --- /dev/null +++ b/playground/glob-import/dir/quote'.js @@ -0,0 +1 @@ +export const msg = 'single-quote'