fix: auto-import does not work when using @vitejs/plugin-vue alone (#1412)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user