Skip to content

Commit ed79d82

Browse files
authored
fix: vuejs/vue-vapor url (#122)
1 parent 163a38d commit ed79d82

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1395
-1393
lines changed

.vitepress/config/en.mts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { DefaultTheme, UserConfig } from "vitepress";
22

33
export default (): UserConfig<DefaultTheme.Config> => ({
44
title: "Reading vuejs/core-vapor",
5+
titleTemplate: '| Reading vuejs/core-vapor',
56
description: "Reading vuejs/core-vapor",
67
themeConfig: {
78
sidebar: [

.vitepress/config/ja.mts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { DefaultTheme, UserConfig } from "vitepress";
22

33
export default (): UserConfig<DefaultTheme.Config> => ({
44
title: "vuejs/core-vapor を読む",
5+
titleTemplate: '| vuejs/core-vapor を読む',
56
description: "vuejs/core-vapor を読む",
67
themeConfig: {
78
sidebar: [

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"textlint": "^14.2.0",
2121
"textlint-rule-preset-ja-spacing": "^2.4.3",
2222
"textlint-rule-prh": "^6.0.0",
23-
"vitepress": "^1.3.4",
23+
"vitepress": "^1.5.0",
2424
"xmlhttprequest": "^1.8.0"
2525
}
2626
}

pnpm-lock.yaml

Lines changed: 544 additions & 544 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/compiler-overview-codegen.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,48 +10,48 @@ By understanding this, you'll have a substantial grasp of the compiler.
1010

1111
The implementation of codegen (generator) can be found in the following areas:
1212

13-
- [packages/compiler-vapor/src/generate.ts](https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts)
14-
- [packages/compiler-vapor/src/generators](https://github.com/vuejs/core-vapor/tree/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators)
13+
- [packages/compiler-vapor/src/generate.ts](https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts)
14+
- [packages/compiler-vapor/src/generators](https://github.com/vuejs/vue-vapor/tree/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators)
1515

1616
The structure is similar to the transformer; `generate.ts` implements the `generate` function and `CodegenContext`, and the `generators` directory contains code generation functions for each node.
1717

18-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L99-L103
18+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L99-L103
1919

20-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L22
20+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L22
2121

2222
As usual, let's read about `CodegenContext` as needed while following the code generation of the component.
2323

2424
## generate
2525

2626
First, let's enter the `generate` function.
2727

28-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L99-L103
28+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L99-L103
2929

3030
The code is appended sequentially using the `push` function obtained from `buildCodeFragment`.
3131

32-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L104
32+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L104
3333

34-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/utils.ts#L30-L35
34+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/utils.ts#L30-L35
3535

3636
First, we push the signature of the render function.
3737

38-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L108
38+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L108
3939

40-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L113
40+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L113
4141

4242
Then, we generate code from the IR using `genBlockContent`.
4343

44-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L116-L118
44+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L116-L118
4545

4646
Since the declarations of templates and import statements are done outside the render function, these are generated as `preamble` and added to the beginning of the code.
4747

48-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L126-L129
48+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L126-L129
4949

50-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L136-L139
50+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L136-L139
5151

5252
This `code` becomes the final code.
5353

54-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L141-L148
54+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generate.ts#L141-L148
5555

5656
Now, let's read `genBlockContent`.
5757

@@ -69,35 +69,35 @@ https://github.com/vitejs/vite-plugin-vue/blob/8d5a270408ff213648cda2a8db8f6cd63
6969

7070
## genBlockContent
7171

72-
The implementation is located in [packages/compiler-vapor/src/generators/block.ts](https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts).
72+
The implementation is located in [packages/compiler-vapor/src/generators/block.ts](https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts).
7373

74-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts#L36-L41
74+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts#L36-L41
7575

7676
We take out each child from `block.dynamic.children` and generate code.
7777

78-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts#L51-L53
78+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts#L51-L53
7979

8080
`block.dynamic.children` is generated in `transformChildren`, and its content directly includes `childContext.dynamic`.
8181

82-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/transforms/transformChildren.ts#L36
82+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/transforms/transformChildren.ts#L36
8383

8484
Looking again at what information besides flags is included:
8585

86-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts#L246-L252
86+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts#L246-L252
8787

8888
We can see that it includes information like `id` and template index.\
8989
Using this information, we generate code with `genChildren`.
9090

9191
## genChildren
9292

93-
`genChildren` is implemented in [packages/compiler-vapor/src/generators/template.ts](https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/template.ts).
93+
`genChildren` is implemented in [packages/compiler-vapor/src/generators/template.ts](https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/template.ts).
9494

95-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/template.ts#L18-L23
95+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/template.ts#L18-L23
9696

9797
This function generates code like `const n${id} = t${template}()`.\
9898
In this case, it generates code like `const n0 = t0()`.
9999

100-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/template.ts#L29-L32
100+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/template.ts#L29-L32
101101

102102
Here, code like `nextSibling` and `firstChild`, which will appear later, is also generated. (You can skip this for now.)
103103

@@ -108,13 +108,13 @@ Once the code for children is generated.
108108
Next, we generate operations and effects.\
109109
These haven't appeared yet, but they involve generating code for things like text updates and event handler registrations.
110110

111-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts#L55-L56
111+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts#L55-L56
112112

113113
Finally, we generate the `return` statement.
114114

115115
We map over `block.returns`, generate identifiers like `n${idx}`, and generate the `return` statement.
116116

117-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts#L58-L65
117+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/generators/block.ts#L58-L65
118118

119119
---
120120

src/compiler-overview-ir.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ We'll first look at the `IR` before proceeding to read the source code of the `t
1313
While the `SFCDescriptor` and `AST` were essentially structured versions of the user's (web application developer's) input code, the `IR` can be thought of as the "structured version of the output code." \
1414
The definition of `IR` can be found in `ir/index.ts`.
1515

16-
[packages/compiler-vapor/src/ir/index.ts](https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts)
16+
[packages/compiler-vapor/src/ir/index.ts](https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts)
1717

1818
Recall the compiler output of the small component we read at the beginning:
1919

@@ -34,7 +34,7 @@ We can check this by inserting logs into our local compiler.
3434

3535
There's a `transform` function around the following area, so let's output the `ir` after the transform.
3636

37-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/compile.ts#L76-L89
37+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/compile.ts#L76-L89
3838

3939
```json
4040
{
@@ -178,13 +178,13 @@ First, there's a `RootIRNode` at the root. This is the root of the IR. \
178178
This `RootIRNode` contains information such as `node`, `template`, and `block`. \
179179
The `node` is the `RootNode` of the AST.
180180

181-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts#L56-L64
181+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts#L56-L64
182182

183183
Then, the `block` contains a `BlockIRNode`, which represents a `Block`, the unit of elements handled in Vapor.
184184

185-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts#L63
185+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts#L63
186186

187-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts#L47-L54
187+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-vapor/src/ir/index.ts#L47-L54
188188

189189
Here, let's explain a bit about `Block`.
190190

@@ -195,7 +195,7 @@ It's similar to a `VNode` (virtual DOM node) in non-Vapor Mode.
195195

196196
The definition of `Block` is in `runtime-vapor`, so let's take a look.
197197

198-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/runtime-vapor/src/apiRender.ts#L26-L31
198+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/runtime-vapor/src/apiRender.ts#L26-L31
199199

200200
Looking at this, you can get an idea of what a `Block` is. \
201201
A `Block` takes a Node (DOM Node), a Fragment, a Component, or an array of Blocks. \
@@ -211,7 +211,7 @@ const n0 = t0();
211211
Here, `n0` becomes a Block, which is a Node (Element). \
212212
We'll look at this in more detail when we explain the runtime, but let's briefly look at the `template` function.
213213

214-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/runtime-vapor/src/dom/template.ts#L2-L11
214+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/runtime-vapor/src/dom/template.ts#L2-L11
215215

216216
It simply inserts the template into `innerHTML` and returns its `firstChild`. \
217217
In other words, this is just an `ElementNode`.

src/compiler-overview-sfc.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,31 @@ From here, let's look at the details of each part explained earlier.
44

55
Since the parser for SFC is part of the SFC compiler, it is implemented in `compiler-sfc`.
66

7-
[packages/compiler-sfc](https://github.com/vuejs/core-vapor/tree/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc)
7+
[packages/compiler-sfc](https://github.com/vuejs/vue-vapor/tree/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc)
88

99
## SFCDescriptor
1010

1111
First, the object called `SFCDescriptor`, which is the result of parsing, is an object that holds information about the SFC. \
1212
It includes the filename, template information, script information, style information, etc.
1313

14-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L76-L102
14+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L76-L102
1515

1616
The template, script, and style each inherit from an object called `SFCBlock`, and this `SFCBlock` contains information such as `content`, which represents its content, `attrs`, which represents attributes like lang, setup, scoped, etc., and `loc`, which indicates where in the whole SFC it is located.
1717

18-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L39-L47
18+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L39-L47
1919

2020
The `template` is represented by an object called `SFCTemplateBlock`, which contains the AST explained earlier.
2121

22-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L49-L52
22+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L49-L52
2323

2424
Similarly, the script is represented by an object called `SFCScriptBlock`. \
2525
This includes a flag indicating whether it is setup or not, information about the modules being imported, and the AST of the script (JS, TS) that is the content of the block.
2626

27-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L54-L68
27+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L54-L68
2828

2929
Similarly, the style is represented by an object called `SFCStyleBlock`.
3030

31-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L70-L74
31+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L70-L74
3232

3333
That's roughly the outline of `SFCDescriptor`.
3434

@@ -148,16 +148,16 @@ _Note: Some parts are omitted._
148148

149149
The implementation of the parser is the `parse` function below.
150150

151-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L126-L129
151+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L126-L129
152152

153-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L104-L107
153+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L104-L107
154154

155155
The `source` contains the string of the SFC. \
156156
It parses that string and returns an `SFCDescriptor`.
157157

158158
First, it parses the entire SFC using the template parser.
159159

160-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L162-L169
160+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L162-L169
161161

162162
The `compiler.parse` in `compiler` comes from options, and this is actually the template parser in `compiler-core`.
163163

@@ -174,19 +174,19 @@ In other words, `compiler-core` is in a more general position rather than implem
174174

175175
Through this parsing process, we can get the rough structure of `template`, `script`, `style`, etc., so we then branch and perform detailed parsing for each.
176176

177-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L184-L185
177+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L184-L185
178178

179-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L215
179+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L215
180180

181-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L229
181+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L229
182182

183183
In the detailed parts, we process to generate each Block that inherits from the earlier `SFCBlock`. \
184184
(Basically, we're just calling a formatting function called `createBlock` and doing error handling, so we'll omit the code.)
185185

186186
After that, we generate source maps, etc.
187187

188-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L285-L302
188+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L285-L302
189189

190-
https://github.com/vuejs/core-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L377-L384
190+
https://github.com/vuejs/vue-vapor/blob/30583b9ee1c696d3cb836f0bfd969793e57e849d/packages/compiler-sfc/src/parse.ts#L377-L384
191191

192192
Surprisingly, this completes the parsing process of the SFC.

0 commit comments

Comments
 (0)