Skip to content

Commit

Permalink
fix: auto-import does not work when using @vitejs/plugin-vue alone (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
aiktb authored Feb 12, 2025
1 parent 655ba86 commit d6ee456
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 35 deletions.
32 changes: 2 additions & 30 deletions packages/wxt/src/builtin-modules/unimport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down Expand Up @@ -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> {
Expand Down
7 changes: 2 additions & 5 deletions packages/wxt/src/testing/wxt-vitest-plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';

/**
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit d6ee456

Please sign in to comment.