Skip to content

Commit 49b3451

Browse files
committed
fix(vite): compatible with legacy Vite on transformIndexHtml, fix #3357
1 parent 1786670 commit 49b3451

File tree

3 files changed

+32
-14
lines changed

3 files changed

+32
-14
lines changed

packages/vite/src/modes/global/build.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ export function GlobalModeBuildPlugin(ctx: UnocssPluginContext<VitePluginConfig>
8585
handler(code, { filename }) {
8686
tasks.push(extract(code, filename))
8787
},
88+
// Compatibility with Legacy Vite
89+
enforce: 'pre',
90+
transform(code, { filename }) {
91+
tasks.push(extract(code, filename))
92+
},
8893
},
8994
resolveId(id, importer) {
9095
const entry = resolveId(id)

packages/vite/src/modes/global/dev.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,12 @@ export function GlobalModeDevPlugin({ uno, tokens, tasks, flushTasks, affectedMo
137137
setWarnTimer()
138138
tasks.push(extract(code, filename))
139139
},
140+
// Compatibility with Legacy Vite
141+
enforce: 'pre',
142+
transform(code, { filename }) {
143+
setWarnTimer()
144+
tasks.push(extract(code, filename))
145+
},
140146
},
141147
resolveId(id) {
142148
const entry = resolveId(id)

packages/vite/src/transformers.ts

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,26 @@ import type { UnocssPluginContext } from '@unocss/core'
33
import { applyTransformers } from '../../shared-integration/src/transformers'
44

55
export function createTransformerPlugins(ctx: UnocssPluginContext): Plugin[] {
6-
const enforces = ['default', 'pre', 'post'] as const
7-
return enforces.map((enforce): Plugin => ({
8-
name: `unocss:transformers:${enforce}`,
9-
enforce: enforce === 'default' ? undefined : enforce,
10-
transform(code, id) {
11-
return applyTransformers(ctx, code, id, enforce)
12-
},
13-
transformIndexHtml: {
14-
order: enforce === 'default' ? undefined : enforce,
15-
handler(code) {
16-
return applyTransformers(ctx, code, 'index.html', enforce)
17-
.then(t => t?.code)
6+
const orders = ['default', 'pre', 'post'] as const
7+
return orders.map((_order): Plugin => {
8+
const order = _order === 'default' ? undefined : _order
9+
const htmlHandler = (code: string) => {
10+
return applyTransformers(ctx, code, 'index.html', order)
11+
.then(t => t?.code)
12+
}
13+
return {
14+
name: `unocss:transformers:${order}`,
15+
enforce: order,
16+
transform(code, id) {
17+
return applyTransformers(ctx, code, id, order)
1818
},
19-
},
20-
}))
19+
transformIndexHtml: {
20+
order,
21+
handler: htmlHandler,
22+
// Compatibility with Legacy Vite
23+
enforce: order,
24+
transform: htmlHandler,
25+
},
26+
} satisfies Plugin
27+
})
2128
}

0 commit comments

Comments
 (0)