From 1605a532a18137992061b84470bca40900862bc1 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 6 Jul 2023 14:22:31 +0100 Subject: [PATCH] fix(vite): pass modulesDir to `isExternal` (#21966) --- packages/vite/src/dev-bundler.ts | 2 +- packages/vite/src/utils/external.ts | 3 ++- packages/vite/src/vite-node.ts | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/vite/src/dev-bundler.ts b/packages/vite/src/dev-bundler.ts index 7af7ddf93d..8650dab0f1 100644 --- a/packages/vite/src/dev-bundler.ts +++ b/packages/vite/src/dev-bundler.ts @@ -229,7 +229,7 @@ export async function initViteDevBundler (ctx: ViteBuildContext, onBuild: () => const viteServer = ctx.ssrServer! const options: TransformOptions = { viteServer, - isExternal: createIsExternal(viteServer, ctx.nuxt.options.rootDir) + isExternal: createIsExternal(viteServer, ctx.nuxt.options.rootDir, ctx.nuxt.options.modulesDir) } // Build and watch diff --git a/packages/vite/src/utils/external.ts b/packages/vite/src/utils/external.ts index 95ce140332..b439962ffb 100644 --- a/packages/vite/src/utils/external.ts +++ b/packages/vite/src/utils/external.ts @@ -2,7 +2,7 @@ import type { ExternalsOptions } from 'externality' import { ExternalsDefaults, isExternal } from 'externality' import type { ViteDevServer } from 'vite' -export function createIsExternal (viteServer: ViteDevServer, rootDir: string) { +export function createIsExternal (viteServer: ViteDevServer, rootDir: string, modulesDirs?: string[]) { const externalOpts: ExternalsOptions = { inline: [ /virtual:/, @@ -15,6 +15,7 @@ export function createIsExternal (viteServer: ViteDevServer, rootDir: string) { /node_modules/ ], resolve: { + modules: modulesDirs, type: 'module', extensions: ['.ts', '.js', '.json', '.vue', '.mjs', '.jsx', '.tsx', '.wasm'] } diff --git a/packages/vite/src/vite-node.ts b/packages/vite/src/vite-node.ts index 0917581480..72f36ae4b2 100644 --- a/packages/vite/src/vite-node.ts +++ b/packages/vite/src/vite-node.ts @@ -128,7 +128,7 @@ function createViteNodeApp (ctx: ViteBuildContext, invalidates: Set = ne web: [] } }) - const isExternal = createIsExternal(viteServer, ctx.nuxt.options.rootDir) + const isExternal = createIsExternal(viteServer, ctx.nuxt.options.rootDir, ctx.nuxt.options.modulesDir) node.shouldExternalize = async (id: string) => { const result = await isExternal(id) if (result?.external) {