From ebf682ecea72b8c1a09320a2fafdb6bbf7464feb Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 15 Jul 2022 20:43:28 +0800 Subject: [PATCH] fix: use correct require extension to load config (#9118) --- packages/vite/src/node/config.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 259c371fe619d6..28fe2cdebb8e58 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -962,9 +962,11 @@ async function loadConfigFromBundledFile( } // for cjs, we can register a custom loader via `_require.extensions` else { + 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 { @@ -974,7 +976,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 } }