From bab1cbebc42cb5ecdf58416dc8eb7af815e78a00 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Thu, 25 May 2023 10:55:51 +0200 Subject: [PATCH] feat: check for moduleDirectories when externalizing dependency --- packages/vite-node/src/externalize.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/vite-node/src/externalize.ts b/packages/vite-node/src/externalize.ts index 507c24b6d7e8..fe5fc3202907 100644 --- a/packages/vite-node/src/externalize.ts +++ b/packages/vite-node/src/externalize.ts @@ -114,8 +114,11 @@ async function _shouldExternalize( if (matchExternalizePattern(id, options?.external)) return id - const isNodeModule = id.includes('/node_modules/') - const guessCJS = isNodeModule && options?.fallbackCJS + const moduleDirectories = options?.moduleDirectories || ['/node_modules/'] + const isLibraryModule = moduleDirectories.some(dir => + dir instanceof RegExp ? dir.test(id) : id.includes(dir), + ) + const guessCJS = isLibraryModule && options?.fallbackCJS id = guessCJS ? (guessCJSversion(id) || id) : id if (matchExternalizePattern(id, defaultInline)) @@ -124,7 +127,7 @@ async function _shouldExternalize( return id const isDist = id.includes('/dist/') - if ((isNodeModule || isDist) && await isValidNodeImport(id)) + if ((isLibraryModule || isDist) && await isValidNodeImport(id)) return id return false