Skip to content

Commit 9e51297

Browse files
committed
fix(compiler-dom): fix duplicated transforms
1 parent a51e710 commit 9e51297

File tree

2 files changed

+25
-31
lines changed

2 files changed

+25
-31
lines changed

packages/compiler-dom/src/index.ts

+16-29
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import {
66
ParserOptions,
77
RootNode,
88
noopDirectiveTransform,
9-
TransformPreset,
10-
getBaseTransformPreset
9+
NodeTransform,
10+
DirectiveTransform
1111
} from '@vue/compiler-core'
1212
import { parserOptionsMinimal } from './parserOptionsMinimal'
1313
import { parserOptionsStandard } from './parserOptionsStandard'
@@ -23,43 +23,30 @@ export const parserOptions = __BROWSER__
2323
? parserOptionsMinimal
2424
: parserOptionsStandard
2525

26-
export function getDOMTransformPreset(
27-
prefixIdentifiers?: boolean
28-
): TransformPreset {
29-
const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(
30-
prefixIdentifiers
31-
)
32-
return [
33-
[
34-
...nodeTransforms,
35-
transformStyle,
36-
...(__DEV__ ? [warnTransitionChildren] : [])
37-
],
38-
{
39-
...directiveTransforms,
40-
cloak: noopDirectiveTransform,
41-
html: transformVHtml,
42-
text: transformVText,
43-
model: transformModel, // override compiler-core
44-
on: transformOn, // override compiler-core
45-
show: transformShow
46-
}
47-
]
26+
export const DOMNodeTransforms: NodeTransform[] = [
27+
transformStyle,
28+
...(__DEV__ ? [warnTransitionChildren] : [])
29+
]
30+
31+
export const DOMDirectiveTransforms: Record<string, DirectiveTransform> = {
32+
cloak: noopDirectiveTransform,
33+
html: transformVHtml,
34+
text: transformVText,
35+
model: transformModel, // override compiler-core
36+
on: transformOn, // override compiler-core
37+
show: transformShow
4838
}
4939

5040
export function compile(
5141
template: string,
5242
options: CompilerOptions = {}
5343
): CodegenResult {
54-
const [nodeTransforms, directiveTransforms] = getDOMTransformPreset(
55-
options.prefixIdentifiers
56-
)
5744
return baseCompile(template, {
5845
...parserOptions,
5946
...options,
60-
nodeTransforms: [...nodeTransforms, ...(options.nodeTransforms || [])],
47+
nodeTransforms: [...DOMNodeTransforms, ...(options.nodeTransforms || [])],
6148
directiveTransforms: {
62-
...directiveTransforms,
49+
...DOMDirectiveTransforms,
6350
...(options.directiveTransforms || {})
6451
}
6552
})

packages/compiler-ssr/src/transforms/ssrTransformComponent.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ import {
1616
TRANSITION_GROUP,
1717
createIfStatement,
1818
createSimpleExpression,
19-
getDOMTransformPreset,
19+
getBaseTransformPreset,
20+
DOMNodeTransforms,
21+
DOMDirectiveTransforms,
2022
createReturnStatement,
2123
ReturnStatement,
2224
Namespaces,
@@ -165,9 +167,14 @@ export function ssrProcessComponent(
165167

166168
export const rawOptionsMap = new WeakMap<RootNode, CompilerOptions>()
167169

168-
const [vnodeNodeTransforms, vnodeDirectiveTransforms] = getDOMTransformPreset(
170+
const [baseNodeTransforms, baseDirectiveTransforms] = getBaseTransformPreset(
169171
true
170172
)
173+
const vnodeNodeTransforms = [...baseNodeTransforms, ...DOMNodeTransforms]
174+
const vnodeDirectiveTransforms = {
175+
...baseDirectiveTransforms,
176+
...DOMDirectiveTransforms
177+
}
171178

172179
function createVNodeSlotBranch(
173180
props: ExpressionNode | undefined,

0 commit comments

Comments
 (0)