|
1 | 1 | import { PluginContext, PluginOptions } from '../core' |
2 | | -import type { Plugin } from 'vite' |
3 | | -import CSSBuilder, { Options as ExtractorOptions } from '@master/css-builder' |
| 2 | +import { type Plugin } from 'vite' |
| 3 | +import CSSBuilder, { Options } from '@master/css-builder' |
4 | 4 | import VirtualCSSModulePlugin from '../plugins/virtual-css-module' |
5 | 5 | import VirtualCSSHMRPlugin from '../plugins/virtual-css-hmr' |
| 6 | +import InjectVirtualCSSImportPlugin from '../plugins/inject-virtual-css-init' |
6 | 7 |
|
7 | 8 | export default function ExtractMode(options: PluginOptions, context: PluginContext): Plugin[] { |
8 | | - const builder = new CSSBuilder(options.builder) |
9 | | - builder.on('init', (opt: ExtractorOptions) => { |
10 | | - opt.include = [] |
11 | | - }) |
| 9 | + const builder: CSSBuilder = new CSSBuilder(options.builder) |
12 | 10 | return [ |
13 | 11 | { |
14 | 12 | name: 'master-css:static', |
15 | 13 | enforce: 'pre', |
16 | 14 | apply(_, env) { |
17 | | - if (!env.isSsrBuild) { |
18 | | - builder.init() |
19 | | - return true |
20 | | - } else { |
21 | | - return false |
22 | | - } |
| 15 | + return !env.isSsrBuild |
23 | 16 | }, |
24 | 17 | async buildStart() { |
| 18 | + builder.init() |
| 19 | + builder.options.verbose = 0 |
| 20 | + builder.options.include = [] |
25 | 21 | await builder.prepare() |
26 | 22 | }, |
27 | 23 | async transform(code, id) { |
28 | 24 | const resolvedVirtualModuleId = builder.resolvedVirtualModuleId |
29 | 25 | if (id !== resolvedVirtualModuleId && !id.endsWith('.css')) { |
30 | 26 | await builder.insert(id, code) |
31 | 27 | } |
| 28 | + }, |
| 29 | + async configureServer(server) { |
| 30 | + await server.waitForRequestsIdle() |
32 | 31 | } |
33 | 32 | }, |
| 33 | + InjectVirtualCSSImportPlugin(options, context, builder), |
34 | 34 | VirtualCSSHMRPlugin(builder), |
35 | 35 | VirtualCSSModulePlugin(builder), |
36 | 36 | ] |
|
0 commit comments