chore(deps): update vue monorepo
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| vue (source) | 2.6.10 -> 2.7.10 |
||||
| vue-eslint-parser | 7.0.0 -> 7.11.0 |
||||
| vue-template-compiler (source) | 2.6.10 -> 2.7.10 |
||||
| vuex | 3.1.2 -> 3.6.2 |
Release Notes
vuejs/vue-eslint-parser
v7.11.0
βοΈ Updates
-
#β124 Changed to determine parser by extension when parsing non-vue files using multiple
parserOptions.parser.
π Bug fixes
-
#β126 Fixed bug when script tags are missing and multiple
parserOptions.parseris used.
v7.10.0
β¨ Enhancements
- #β119 Added defineDocumentVisitor to parserServices.
π Bug fixes
- #β120 Fixed incorrect AST for commented CSS vars injection.
v7.9.0
β¨ Enhancements
-
#β118 Changed to parse
v-bind()in<style>. This feature can optionally be turned off.
v7.8.0
β¨ Enhancements
-
#β116 Change
parserOptions.parserto accept multiple lang parsers.
π Bug fixes
-
#β115 Fixed parsing error when combining
<script>andexportin<script setup>.
v7.7.2
:bug: Bug Fixes
-
#β113 Downgrade packages that are incompatible with Node v8.
- Downgrade espree
- Downgrade semver
- Change the parser so that if the user explicitly installs
espreev8 and specifiesespreeforparserOptions.parser, it will be use.
v7.7.1
βοΈ Updates
-
#β111 Revert: changed to use
sourceType: moduleby default when parsing<script setup>.
v7.7.0
βοΈ Updates
-
#β108, #β110 Added support for
<script setup>- Changed two
<script>tags to be parseable when using<script setup>. - ~~Upgraded the dependency espree to v8. (However, by default it uses the eslint dependency espree.) This allows to parse Top Level Await by configuring parserOptions. Note that espree v8 is not compatible with some rules of ESLint v7.~~
- ~~Changed to use
sourceType: moduleby default when parsing<script setup>.~~ - Changed to use ES2022 by default when using espree v8+ and parsing
<script setup>. - Added an option to
defineTemplateBodyVisitorto change the trigger to visit the template nodes. This is used to create special rules that suppress warnings forno-unused-varsrule. e.g.vue/script-setup-uses-varsrule
- Changed two
v7.6.0
:bug: Bug fixes
- #β103 Changes the parser to be case sensitive for the name used to determine the element when the file is SFC.
v7.5.0
βοΈ Updates
-
#β100 Upgrade esquery and use new option. You can now use queries such as
:first-childto traverse templates.
v7.4.1
:bug: Bug fixes
-
#β97 Fixed wrong AST for
v-for="(a, index) in list"
v7.4.0
:bug: Bug fixes
- #β96 Fixed parsing errors in multiple v-for aliases in ecmaVersion: 5.
v7.3.0
β¨ Enhancements
-
#β91 Added
defineCustomBlocksVisitor()to parserServices.
βοΈ Updates
- #β90 Changed the parsing of custom block to parse like Vue3 parser.
βοΈ Chores
-
#β92 Upgrade
@typescript-eslintand prettier
v7.2.0
β¨ Enhancements
- Added
parserOptions.vueFeaturesoption.
π Bug fixes
- #β85 Fixed type of VDirectiveKey.
-
#β87 Fixed the wrong location when using with
@typescript-eslint
v7.1.1
π Bug Fixes
- #β74 fixed wrong location calculation when including CRLF.
v7.1.0
β¨ Enhancements
-
27a275fupdates the default parser loading logic to use theespreeof loaded ESLint.
π Bug fixes
-
6c1ac68fixed the parser to generate correct comment data.
vuejs/vue
v2.7.10
Bug Fixes
- compiler-sfc: avoid deindent when lang is jsx/tsx (46ca7bc), closes #β12755
- fix parent of multi-nested HOC $el not updating (#β12757) (e0b26c4), closes #β12589
- types: Add missing type parameter constraints (#β12754) (810f6d1)
v2.7.9
Bug Fixes
- compiler-sfc: allow full hostnames in asset url base (#β12732) (5c742eb), closes #β12731
- compiler-sfc: rewriteDefault for class with decorators (#β12747) (5221d4d)
- directives shorthand normalize error (#β12744) (2263948), closes #β12743
- ensure render watcher of manually created instance is correctly tracked in owner scope (bd89ce5), closes #β12701
- fix effect scope tracking for manually created instances (7161176), closes #β12705
- ssr: fix on-component directives rendering (#β12661) (165a14a), closes #β10733
- types: allow attaching unknown options to defined component (b4bf4c5), closes #β12742
- types: fix missing error for accessing undefined instance properties (8521f9d), closes #β12718
- types: fix options suggestions when using defineComponent (4b37b56), closes #β12736
- types: Make SetupBindings optional on ExtendedVue and CombinedVueInstance (#β12727) (00458cd), closes #β12726 #β12717
- watch: avoid pre watcher firing on unmount (f0057b1), closes #β12703
Features
- types: enhance type for onErrorCaptured (#β12735) (bba6b3d)
- types: export DefineComponent (80d1baf), closes #β12748
- types: support mixins inference for new Vue() (#β12737) (89a6b5e), closes #β12730
v2.7.8
Bug Fixes
- reactivity: fix shallowReactive nested ref setting edge cases (2af751b), closes #β12688
-
sfc: align
<script setup>component resolution edge case with v3 (#β12687) (a695c5a), closes #β12685 - types: avoid circular type inference between v2 and v3 instance types (fabc1cf), closes #β12683
-
types: export
defineAsyncComponenttype (#β12684) (ba7dd2c)
Features
-
setup: support listeners on setup context +
useListeners()helper (adf3ac8)
v2.7.7
Bug Fixes
- codegen: script setup should not attempt to resolve native elements as component (e8d3a7d), closes #β12674
- inject: fix edge case of provided with async-mutated getters (ea5d0f3), closes #β12667
- setup: ensure setup context slots can be accessed immediately (67760f8), closes #β12672
- types: vue.d.ts should use relative import to v3-component-public-instance (#β12668) (46ec648), closes #β12666
- watch: fix queueing multiple post watchers (25ffdb6), closes #β12664
v2.7.6
Bug Fixes
- types: $refs can also contain ComponentPublicInstance (#β12659) (fffbb9e)
- types: fix $children and $root instance types (52a5979), closes #β12655
- types: fix missing expose() type on setup context (e0a9546), closes #β12660
v2.7.5
Bug Fixes
- add missing export from
vue.runtime.mjs(#β12648) (08fb4a2) - detect property add/deletion on reactive objects from setup when used in templates (a6e7498)
- do not set currentInstance in beforeCreate (0825d30), closes #β12636
- reactivity: fix watch behavior inconsistency + deep ref shallow check (98fb01c), closes #β12643
- sfc: fix sfc name inference type check (04b4703), closes #β12637
- types: support Vue interface augmentations in defineComponent (005e52d), closes #β12642
- watch: fix deep watch for structures containing raw refs (1a2c3c2), closes #β12652
v2.7.4
Bug Fixes
- build: fix mjs dual package hazard (012e10c), closes #β12626
- compiler-sfc: use safer deindent default for compatibility with previous behavior (b70a258)
- pass element creation helper to static render fns for functional components (dc8a68e), closes #β12625
- ssr/reactivity: fix array setting error at created in ssr [#β12632] (#β12633) (ca7daef)
- types: fix missing instance properties on defineComponent this (f8de4ca), closes #β12628
- types: fix this.$slots type for defineComponent (d3add06)
- types: fix type inference when using components option (1d5a411)
- types: global component registration type compat w/ defineComponent (26ff4bc), closes #β12622
- watch: fix watchers triggered in mounted hook (8904ca7), closes #β12624
Features
- defineAsyncComponent (9d12106), closes #β12608
- support functional components in defineComponent (559600f), closes #β12619
v2.7.3
Bug Fixes
- add renderTracked/Triggered merge strategy (#β12616) (6d1dbee)
- ssr/reactivity: fix composition api behavior in SSR (360272b), closes #β12615
- types: allow slot attribute (94ccca2), closes #β12617
v2.7.2
Bug Fixes
Features
- allow passing directive definition directly to h() (#β12590) (d45bbea)
- types: define component improvements (#β12612) (fb93c1b)
v2.7.1
Bug Fixes
- compiler-sfc: avoid deindent when lang is jsx/tsx (46ca7bc), closes #β12755
- fix parent of multi-nested HOC $el not updating (#β12757) (e0b26c4), closes #β12589
- types: Add missing type parameter constraints (#β12754) (810f6d1)
v2.7.0
Backported Features
- Composition API
- SFC
<script setup> - SFC CSS v-bind
In addition, the following APIs are also supported:
-
defineComponent()with improved type inference (compared toVue.extend) -
h(),useSlot(),useAttrs(),useCssModules() -
set(),del()andnextTick()are also provided as named exports in ESM builds. -
The
emitsoption is also supported, but only for type-checking purposes (does not affect runtime behavior)2.7 also supports using ESNext syntax in template expressions. When using a build system, the compiled template render function will go through the same loaders / plugins configured for normal JavaScript. This means if you have configured Babel for
.jsfiles, it will also apply to the expressions in your SFC templates.
Notes on API exposure
-
In ESM builds, these APIs are provided as named exports (and named exports only):
import Vue, { ref } from 'vue' Vue.ref // undefined, use named export instead -
In UMD and CJS builds, these APIs are exposed as properties on the global
Vueobject. -
When bundling with CJS builds externalized, bundlers should be able to handle ESM interop when externalizing CJS builds.
Behavior Differences from Vue 3
The Composition API is backported using Vue 2's getter/setter-based reactivity system to ensure browser compatibility. This means there are some important behavior differences from Vue 3's proxy-based system:
-
All Vue 2 change detection caveats still apply.
-
reactive(),ref(), andshallowReactive()will directly convert original objects instead of creating proxies. This means:// true in 2.7, false in 3.x reactive(foo) === foo -
readonly()does create a separate object, but it won't track newly added properties and does not work on arrays. -
Avoid using arrays as root values in
reactive()because without property access the array's mutation won't be tracked (this will result in a warning). -
Reactivity APIs ignore properties with symbol keys.
In addition, the following features are explicitly NOT ported:
- β
createApp()(Vue 2 doesn't have isolated app scope) - β Top-level
awaitin<script setup>(Vue 2 does not support async component initialization) - β TypeScript syntax in template expressions (incompatible w/ Vue 2 parser)
- β Reactivity transform (still experimental)
- β
exposeoption is not supported for options components (butdefineExpose()is supported in<script setup>).
TypeScript Changes
-
defineComponentprovides improved type inference similar to that of Vue 3. Note the type ofthisinsidedefineComponent()is not interoperable withthisfromVue.extend(). -
Similar to Vue 3, TSX support is now built-in. If your project previously had manual JSX type shims, make sure to remove them.
Upgrade Guide
Vue CLI / webpack
-
Upgrade local
@vue/cli-xxxdependencies the latest version in your major version range (if applicable):-
~4.5.18for v4 -
~5.0.6for v5
-
-
Upgrade
vueto^2.7.0. You can also removevue-template-compilerfrom the dependencies - it is no longer needed in 2.7.Note: if you are using
@vue/test-utils, you may need to keep it in the dependencies for now, but this requirement will also be lifted in a new release of test utils. -
Check your package manager lockfile to ensure the following dependencies meet the version requirements. They may be transitive dependencies not listed in
package.json.-
vue-loader:^15.10.0 -
vue-demi:^0.13.1
If not, you will need to remove
node_modulesand the lockfile and perform a fresh install to ensure they are bumped to the latest version. -
-
If you were previously using
@vue/composition-api, update imports from it tovueinstead. Note that some APIs exported by the plugin, e.g.createApp, are not ported in 2.7. -
Update
eslint-plugin-vueto latest version (9+) if you run into unused variable lint errors when using<script setup>. -
The SFC compiler for 2.7 now uses PostCSS 8 (upgraded from 7). PostCSS 8 should be backwards compatible with most plugins, but the upgrade may cause issues if you were previously using a custom PostCSS plugin that can only work with PostCSS 7. In such cases, you will need to upgrade the relevant plugins to their PostCSS 8 compatible versions.
Vite
2.7 support for Vite is provided via a new plugin: @βvitejs/plugin-vue2. This new plugin requires Vue 2.7 or above and supersedes the existing vite-plugin-vue2.
Note that the new plugin does not handle Vue-specific JSX / TSX transform, which is intentional. Vue 2 JSX / TSX transform should be handled in a separate, dedicated plugin, which will be provided soon.
Volar Compatibility
2.7 ships improved type definitions so it is no longer necessary to install @vue/runtime-dom just for Volar template type inference support. All you need now is the following config in tsconfig.json:
{
// ...
"vueCompilerOptions": {
"target": 2.7
}
}
Devtools Support
Vue Devtools 6.2.0 has added support for inspecting 2.7 Composition API state, but the extensions may still need a few days to go through review on respective publishing platforms.
Bug Fixes
- sfc: only include legacy decorator parser plugin when new plugin is not used (326d24a)
v2.6.14
Bug Fixes
- types: async Component types (#β11906) (c52427b)
- v-slot: fix scoped slot normalization combined with v-if (#β12104) (38f71de)
Features
v2.6.13
Bug Fixes
- attrs: do not consider translate attribute as boolean (#β11392) (cd57393), closes #β11391
- compiler: Allow BigInt usage in templates (#β11152) (c42b706)
- compiler: avoid converting &nbps; to spaces (#β11065) (55a30cf)
- compiler: event handlers with modifiers swallowing arguments (fix #β10867) (#β10958) (8620706)
- core: fix sameVnode for async component (#β11107) (5260830)
- core: remove trailing comma in function signature (#β10845) (579e1ff), closes #β10843
- errorHandler: async error handling for watchers (#β9484) (e4dea59)
- force update between two components with and without slot (#β11795) (77b5330)
- give correct namespace in foreignObject (#β11576) (af5e05d), closes #β11575
- handle async placeholders in normalizeScopedSlot (#β11963) (af54514)
- keep-alive: cache what is really needed not the whole VNode data (#β12015) (e7baaa1)
- parser: allow multiple slots with new syntax (#β9785) (67825c2), closes #β9781
- pause dep collection during immediate watcher invocation (#β11943) (987f322)
- props: correctly warn when a provided prop is Symbol (#β10529) (abb5ef3), closes #β10519
- props: support BigInt in props type validation (#β11191) (fa1f81e)
- slot: add a function to return the slot fallback content (#β12014) (ce457f9)
- ssr: avoid missing files in manifest (#β11609) (b97606c)
- ssr: inheritAttrs false adds attributes to html (#β11706) (7e5dc6b)
- ssr: textarea keeps undefined/null values (#β11121) (b8bd149)
- types: add types for Vue.util.warn function (#β11964) (e0274e4), closes /github.com/vuejs/vue/blob/v2.6.12/src/core/util/debug.js#L18-L26
- types: allow string for watch handlers in options (#β10396) (668e1e6)
- types: allow symbol & boolean for vnode key (#β11914) (5c459f0)
- types: changed expression type to optional string (#β11189) (7c75462), closes #β10871
- types: make $refs undefined possible (#β11112) (2b93e86)
- v-on: avoid events with empty keyCode (autocomplete) (#β11326) (c6d7a6f)
- v-pre: do not alter attributes (#β10088) (0664cb0), closes #β10087
- vdom: avoid executing root level script tags (#β11487) (fb16d7b), closes #β11483
- warn: better message with no constructors props (#β9241) (6940131)
-
warns: modify
maybeComponentfunction in parser (#β10167) (0603ff6), closes #β10152
Features
- warns: avoid warning native modifiers on dynamic components (#β11052) (3d46692)
- warn: warn computed conflict with methods (#β10119) (3ad60fe)
Performance Improvements
v2.6.12
Bug Fixes
v2.6.11
Bug Fixes
vuejs/vuex
v3.6.2
Bug Fixes
- build: fix wrong path name for the export module (679313b)
v3.6.1
Bug Fixes
v3.6.0
Bug Fixes
Features
- types: adding logger type for logger plugin (#β1853) (cb3198d)
- build: enable named esm module import on node.js >= 14 (#β1872) (acddab2)
v3.5.1
v3.5.0
v3.4.0
v3.3.0
Bug Fixes
- Prepend devtool handler (#β1358) (a39d076), closes vuejs/vue-devtools#β678
-
types: Add
devtoolsto store options type (#β1478) (38c11dc)
Features
- Add
prependoption forsubscribeandsubscribeAction(#β1358) (a39d076) -
logger:
createLoggercan optionally log actions (#β987) (18be128)
v3.2.0
Features
3.1.3 (2020-03-09)
Bug Fixes
3.1.2 (2019-11-10)
Bug Fixes
- tweak mapping helper warning message (#β1641) (e60bc76)
- types: avoid broadening vue instance type when using map helpers (#β1639) (9a96720)
- add warnings when the different namespaced modules has the same namesβ¦ (#β1554) (91f3e69)
- Should vuex mapState print error message #β1093 (#β1297) (e5ca2d5)
- Warn about conflicts between state and module (#β1365) (538ee58)
- docs: Clearify state object type (#β1601) (de06f76)
Performance Improvements
3.1.1 (2019-05-08)
Bug Fixes
- Memory leak happening while using registerModule/uβ¦ (#β1508) (cb9986a), closes issue#β1507
- types: Make mutation and action payload optional in definition file (#β1517) (0e109e2), closes #β1491
Features
- devtool: allow usage in non-browser environments (#β1404) (665455f)
- esm build: build ES modules for browser (#β1533) (d7c7f98)
v3.1.3
Bug Fixes
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
- [ ] If you want to rebase/retry this PR, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.