From d6ee4560d8bb11b210266c15ce76e774e5550a33 Mon Sep 17 00:00:00 2001 From: Jaguar Zhou Date: Wed, 12 Feb 2025 13:49:59 +0800 Subject: [PATCH] fix: auto-import does not work when using `@vitejs/plugin-vue` alone (#1412) --- packages/wxt/src/builtin-modules/unimport.ts | 32 ++----------------- packages/wxt/src/testing/wxt-vitest-plugin.ts | 7 ++-- 2 files changed, 4 insertions(+), 35 deletions(-) diff --git a/packages/wxt/src/builtin-modules/unimport.ts b/packages/wxt/src/builtin-modules/unimport.ts index df6bf351..11bf88ba 100644 --- a/packages/wxt/src/builtin-modules/unimport.ts +++ b/packages/wxt/src/builtin-modules/unimport.ts @@ -6,8 +6,7 @@ import type { WxtResolvedUnimportOptions, } from '../types'; import { type Unimport, createUnimport } from 'unimport'; -import { Plugin } from 'vite'; -import { extname } from 'node:path'; +import UnimportPlugin from 'unimport/unplugin'; export default defineWxtModule({ name: 'wxt:built-in:unimport', @@ -53,38 +52,11 @@ export default defineWxtModule({ // Add vite plugin addViteConfig(wxt, () => ({ - plugins: [vitePlugin(unimport)], + plugins: [UnimportPlugin.vite(options)], })); }, }); -export function vitePlugin(unimport: Unimport): Plugin { - const ENABLED_EXTENSIONS = new Set([ - '.js', - '.jsx', - '.ts', - '.tsx', - '.vue', - '.svelte', - ]); - return { - name: 'wxt:unimport', - async transform(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; - - const injected = await unimport.injectImports(code, id); - return { - code: injected.code, - map: injected.s.generateMap({ hires: 'boundary', source: id }), - }; - }, - }; -} - async function getImportsDeclarationEntry( unimport: Unimport, ): Promise { diff --git a/packages/wxt/src/testing/wxt-vitest-plugin.ts b/packages/wxt/src/testing/wxt-vitest-plugin.ts index 04280b1e..de526cbe 100644 --- a/packages/wxt/src/testing/wxt-vitest-plugin.ts +++ b/packages/wxt/src/testing/wxt-vitest-plugin.ts @@ -7,8 +7,7 @@ import { resolveAppConfig, } from '../core/builders/vite/plugins'; import { InlineConfig } from '../types'; -import { vitePlugin as unimportPlugin } from '../builtin-modules/unimport'; -import { createUnimport } from 'unimport'; +import UnimportPlugin from 'unimport/unplugin'; import { registerWxt, wxt } from '../core/wxt'; /** @@ -39,9 +38,7 @@ export async function WxtVitest( extensionApiMock(wxt.config), ]; if (wxt.config.imports !== false) { - const unimport = createUnimport(wxt.config.imports); - await unimport.init(); - plugins.push(unimportPlugin(unimport)); + plugins.push(UnimportPlugin.vite(wxt.config.imports)); } return plugins;