fix: auto-import does not work when using @vitejs/plugin-vue alone (#1412)

This commit is contained in:
Jaguar Zhou
2025-02-12 13:49:59 +08:00
committed by GitHub
parent 655ba863a0
commit d6ee4560d8
2 changed files with 4 additions and 35 deletions
+2 -30
View File
@@ -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<WxtDirFileEntry> {
@@ -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;