Commit Graph

81 Commits

Author SHA1 Message Date
Evan You b8d58ec4f4 fix(compiler-sfc): respect sfc parse options in cache key 2023-12-30 20:38:58 +08:00
Evan You 6fab8551e4 feat(compiler-sfc): support passing template parsing options when parsing sfc
- This is released in a patch because it is an relatively internal API
  but required to properly fix https://github.com/vitejs/vite-plugin-vue/issues/322

- `parseExpressions` is now deprecated because it can be passed using
  original template parsing options (`prefixIdentifiers`)
2023-12-30 08:44:39 +08:00
三咲智子 Kevin Deng bfe6b459d3
style: update format & lint config (#9162)
Co-authored-by: 丶远方 <yangpanteng@gmail.com>
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
Co-authored-by: Guo Xingjun <99574369+Plumbiu@users.noreply.github.com>
2023-12-26 19:39:47 +08:00
Evan You e12b10ac3e chore: Merge branch 'main' into minor 2023-12-04 23:17:41 +08:00
Evan You f12db7fb56 fix(compiler-sfc): avoid passing forEach index to genMap 2023-12-04 15:43:29 +08:00
Evan You 634519720a fix(compiler-sfc): deindent pug/jade templates
close #3231
close #3842
close #7723
2023-12-01 16:45:53 +08:00
Evan You e8bbc946cb
feat(compiler-sfc): analyze import usage in template via AST (#9729)
close #8897
close nuxt/nuxt#22416
2023-12-01 11:14:48 +08:00
Evan You 50cde7cfbc perf(compiler-sfc): use faster source map addMapping 2023-11-27 14:42:12 +08:00
Evan You f15d2f6cf6 perf: avoid sfc source map unnecessary serialization and parsing 2023-11-27 12:26:51 +08:00
Evan You 08f0baa2ad refactor: preserve source location convention in sfc mode for base parser
For compatibility w/ usage like https://github.com/vue-macros/vue-macros/blob/main/packages/setup-block/src/core/index.ts
2023-11-25 18:07:29 +08:00
Evan You 79d3cc6cec wip: should not reuse AST when using custom compiler 2023-11-25 16:18:29 +08:00
Evan You 37f9d3da8f wip: compiler-sfc should not attach ast on template with src import 2023-11-25 16:18:29 +08:00
Evan You e5afca6c1e wip: treat template with preprocessor as plain text 2023-11-25 16:18:29 +08:00
Evan You 5fc695be26 wip: support reusing template ast from sfc descriptor 2023-11-25 16:18:29 +08:00
Evan You 059caafc13 wip: pass all compiler-sfc tests 2023-11-25 16:18:29 +08:00
Evan You a60ad9180d refactor: swap to new template parser
- get rid of SourceLocation.source for memory efficiency
- move source location generation logic transform phase into the parser
  itself so that SourceLocation.source is no longer needed
  - move v-for expression parsing into the parser itself
  - added nameLoc on AttributeNode for use in transformElement

Tests are not passing yet.
2023-11-25 16:18:29 +08:00
Evan You 45765488d4 feat(compiler-sfc): expose parseCache
So that users can adjust cache's max size.
close #8202
2023-05-01 11:33:07 +08:00
Evan You 075498c959 refactor: avoid hard error when inferring runtime type 2023-04-15 22:08:39 +08:00
Evan You c52157c87d refactor(compiler-sfc): split more logic 2023-04-11 16:05:00 +08:00
Evan You 19e17a951c perf(compiler): use source-map-js 2023-04-09 16:50:20 +08:00
Evan You b2c874e3b9 refactor(compiler-sfc): move related files into separate directories 2023-04-05 16:35:10 +08:00
Evan You 71635be68d feat(compiler-sfc): support generating variable instead of default export in compileScript 2023-03-30 16:58:41 +08:00
三咲智子 Kevin Deng 701b95ff3d
fix(compiler-sfc): rewrite default export with AST analysis instead of regex (#7068)
closes #7038
closes #7041
closes #7078
2023-03-28 11:54:22 +08:00
花果山大圣 a0c7f271a2
fix(compiler-sfc): require <template> or <script> in SFC (#6781)
fix #6676
2022-11-07 22:34:39 -05:00
三咲智子 Kevin Deng 97aadd8290
types: use actual type for script block ASTs (#6457) 2022-11-07 21:14:10 -05:00
ygj6 16939241b0
fix(compiler-sfc): automatically infer component name from filename when using script setup (#4997)
close #4993
2022-05-09 21:16:28 -04:00
Evan You 68c45e73da feat(compiler-sfc): expose properties for more accurate HMR
ref #4358
reverts #4908
2021-11-26 14:22:26 +08:00
btea fd7c3407c7
refactor(compiler-sfc): replace filter method with for loop (#4905) 2021-11-14 21:31:44 -05:00
Evan You a42a14d3bc types(compiler-sfc): type annotation tweaks + move @babel/types to devDeps 2021-09-20 22:06:12 -04:00
Evan You 0c2ea1c134 refactor(compiler-sfc): remove parseOnly mode 2021-08-22 22:28:47 -04:00
Evan You 3b38c9ae9b feat(sfc): remove experimental status for sfc style v-bind 2021-07-28 18:31:48 -04:00
Evan You f0ca233d8b refactor(compiler-sfc): improve script setup import expose heuristics 2021-07-22 12:53:08 -04:00
Evan You 8dbecfcbb3 feat(compiler-sfc): add ignoreEmpty option for sfc parse method 2021-07-19 19:02:46 -04:00
Cédric Exbrayat b771fdbef9
perf(compiler-sfc): ignore empty blocks (#3520) 2021-07-19 17:24:40 -04:00
Evan You b274b08f5f fix(compiler-sfc): expose correct range for empty blocks 2021-07-19 17:05:37 -04:00
Evan You 601a290caa feat(compiler-sfc): compileScript parseOnly mode
This is an internal feature meant for IDE support
2021-06-29 17:56:49 -04:00
Evan You 467076361a wip: warn against `<template functional>` 2021-04-17 23:51:40 -04:00
Evan You 540e26f49c chore: only set slotted flag on sfc descriptor if style is scoped 2021-03-05 18:28:12 -05:00
Evan You 02cbbb718c perf: support only attaching slot scope ids when necessary
This is done by adding the `slotted: false` option to:

- compiler-dom
- compiler-ssr
- compiler-sfc (forwarded to template compiler)

At runtime, only slotted component will render slot fragments with
slot scope Ids. For SSR, only slotted component will add slot scope Ids
to rendered slot content. This should improve both runtime performance
and reduce SSR rendered markup size.

Note: requires SFC tooling (e.g. `vue-loader` and `vite`) to pass on
the `slotted` option from the SFC descriptoer to the `compileTemplate`
call.
2021-03-05 18:28:12 -05:00
HcySunYang 6d5b623512
fix(compiler-sfc): the empty lang attribute should be treated as no lang specified (#3051) 2021-02-03 19:11:45 +01:00
meteorlxy 5b9b37fc9b
fix(compiler-sfc): should keep template nodes with no content (#2468)
close #2463
2020-12-04 18:23:01 -05:00
edison 5f2a8533ac
fix(compiler-sfc): fix parsing error when `lang=""` is used on plain element (#2569)
fix #2566
2020-11-30 14:45:26 -05:00
Evan You 67d1aac6ae feat(sfc): allow sfcs to recursively self-reference in template via name inferred from filename
e.g. A file named `FooBar.vue` can refer to itself as `<FooBar/>`. This gets rid of the need for the `name` option.
2020-11-30 12:30:51 -05:00
Evan You 9cb74960ac chore: move style vars deprecation warning to a parse error 2020-11-21 23:53:32 -05:00
Evan You 62830f8fa4 wip: better experimental feature warnings 2020-11-19 20:36:15 -05:00
Evan You 9db42889e6 Revert "wip: allow scriptCompiled to be cached on sfc descriptor"
This reverts commit 737ef424a0.
2020-11-19 20:02:27 -05:00
Evan You 737ef424a0 wip: allow scriptCompiled to be cached on sfc descriptor 2020-11-19 13:08:27 -05:00
Evan You bb343383f2 refactor(compiler-sfc): parse css vars directly as part of sfc descriptor 2020-11-18 19:38:38 -05:00
Evan You 41bb7fa330 feat(compiler-sfc): new SFC css varaible injection implementation
ref: https://github.com/vuejs/rfcs/pull/231
2020-11-16 18:27:25 -05:00
Stanislav Lashmanov 4421c00903
feat(compiler-sfc): analyze script bindings (#1962)
Also expose `scriptAst` and `scriptSetupAst` on returned script block
2020-08-28 16:21:03 -04:00