diff --git a/packages/vite/src/node/__tests__/config.spec.ts b/packages/vite/src/node/__tests__/config.spec.ts index d886a35053ff33..a36714a83134ba 100644 --- a/packages/vite/src/node/__tests__/config.spec.ts +++ b/packages/vite/src/node/__tests__/config.spec.ts @@ -1173,6 +1173,7 @@ describe('loadConfigFromFile', () => { expect(c.dirname).toContain('import-meta') expect(c.filename).toContain('vite.config.ts') expect(c.resolved).toBe(c.url) + expect(c.resolvedMultiline).toBe(c.url) }) test('shebang is preserved at the top of the file', async () => { diff --git a/packages/vite/src/node/__tests__/fixtures/config/import-meta/vite.config.ts b/packages/vite/src/node/__tests__/fixtures/config/import-meta/vite.config.ts index 60ef3da4e3e29f..36a6cdaf6c0804 100644 --- a/packages/vite/src/node/__tests__/fixtures/config/import-meta/vite.config.ts +++ b/packages/vite/src/node/__tests__/fixtures/config/import-meta/vite.config.ts @@ -4,4 +4,7 @@ export default { dirname: import.meta.dirname, filename: import.meta.filename, resolved: import.meta.resolve('../import-meta/vite.config.ts'), + // prettier-ignore + resolvedMultiline: import.meta + .resolve('../import-meta/vite.config.ts'), } diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 67c906f9c32343..ca9cf09039738c 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -2305,6 +2305,7 @@ async function bundleConfigFile( const importMetaUrlVarName = '__vite_injected_original_import_meta_url' const importMetaResolveVarName = '__vite_injected_original_import_meta_resolve' + const importMetaResolveRegex = /import\.meta\s*\.\s*resolve/ const bundle = await rolldown({ input: fileName, @@ -2392,7 +2393,7 @@ async function bundleConfigFile( `const ${importMetaUrlVarName} = ${JSON.stringify( pathToFileURL(id).href, )};` - if (code.includes('import.meta.resolve')) { + if (importMetaResolveRegex.test(code)) { if (isESM) { if (!importMetaResolverRegistered) { importMetaResolverRegistered = true