From df13b9705ca1f4823b191e002f31b065db99649c Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 28 Nov 2023 12:15:05 -0600 Subject: [PATCH] fix(auto-imports): Don't add imports to `node_module` dependencies (#247) --- src/core/vite-plugins/unimport.ts | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/core/vite-plugins/unimport.ts b/src/core/vite-plugins/unimport.ts index 2ef4a6ac..498cf160 100644 --- a/src/core/vite-plugins/unimport.ts +++ b/src/core/vite-plugins/unimport.ts @@ -4,14 +4,14 @@ import { getUnimportOptions } from '~/core/utils/unimport'; import * as vite from 'vite'; import { extname } from 'path'; -const ENABLED_EXTENSIONS: Record = { - '.js': true, - '.jsx': true, - '.ts': true, - '.tsx': true, - '.vue': true, - '.svelte': true, -}; +const ENABLED_EXTENSIONS = new Set([ + '.js', + '.jsx', + '.ts', + '.tsx', + '.vue', + '.svelte', +]); /** * Inject any global imports defined by unimport @@ -28,8 +28,13 @@ export function unimport(config: InternalConfig): vite.PluginOption { await unimport.scanImportsFromDir(undefined, { cwd: config.srcDir }); }, async transform(code, id) { - const ext = extname(id); - if (ENABLED_EXTENSIONS[ext]) return unimport.injectImports(code, id); + // Don't transform dependencies + if (id.includes('node_modules')) return; + + // Don't transform non-js files + if (!ENABLED_EXTENSIONS.has(extname(id))) return; + + return unimport.injectImports(code, id); }, }; }