diff --git a/packages/mocker/src/node/hoistMocksPlugin.ts b/packages/mocker/src/node/hoistMocksPlugin.ts index de29eb1f8d0f..cc582ae9b405 100644 --- a/packages/mocker/src/node/hoistMocksPlugin.ts +++ b/packages/mocker/src/node/hoistMocksPlugin.ts @@ -1,7 +1,6 @@ import type { SourceMap } from 'magic-string' import type { Plugin, Rollup } from 'vite' import type { HoistMocksOptions } from './hoistMocks' -import { createFilter } from 'vite' import { cleanUrl } from '../utils' import { hoistMocks } from './hoistMocks' @@ -15,7 +14,7 @@ export interface HoistMocksPluginOptions extends Omit boolean) | undefined = options.filter const { hoistableMockMethodNames = ['mock', 'unmock'], @@ -37,8 +36,14 @@ export function hoistMocksPlugin(options: HoistMocksPluginOptions = {}): Plugin return { name: 'vitest:mocks', enforce: 'post', + async buildStart() { + if (!filter) { + const { createFilter } = await import('vite') + filter = createFilter(options.include, options.exclude) + } + }, transform(code, id) { - if (!filter(id)) { + if (filter && !filter(id)) { return } const s = hoistMocks(code, id, this.parse, {