diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 3ece9213dab76a..c81ab5807c5125 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -978,9 +978,11 @@ async function loadConfigFromBundledFile( fileName: string, bundledCode: string ): Promise { + const extension = path.extname(fileName) const realFileName = fs.realpathSync(fileName) - const defaultLoader = _require.extensions['.js'] - _require.extensions['.js'] = (module: NodeModule, filename: string) => { + const loaderExt = extension in _require.extensions ? extension : '.js' + const defaultLoader = _require.extensions[loaderExt]! + _require.extensions[loaderExt] = (module: NodeModule, filename: string) => { if (filename === realFileName) { ;(module as NodeModuleWithCompile)._compile(bundledCode, filename) } else { @@ -990,7 +992,7 @@ async function loadConfigFromBundledFile( // clear cache in case of server restart delete _require.cache[_require.resolve(fileName)] const raw = _require(fileName) - _require.extensions['.js'] = defaultLoader + _require.extensions[loaderExt] = defaultLoader return raw.__esModule ? raw.default : raw }