Update vue monorepo to v2.7.16 #15
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.6.10->2.7.162.6.10->2.7.16Release Notes
vuejs/core (vue)
v2.6.14Compare Source
v2.6.13Compare Source
v2.6.12Compare Source
v2.6.11Compare Source
vuejs/vue (vue-template-compiler)
v2.7.16Compare Source
Bug Fixes
v2.7.15Compare Source
Bug Fixes
definePropsstatement (#12879) (51fef2c)v-on(#12862) (b8c8b3f)withDefaults(#12872) (099401e)v2.7.14Compare Source
Bug Fixes
EventHandlers(#12840) (0b3cf7d), closes #12832v2.7.13Compare Source
Bug Fixes
v2.7.12Compare Source
Reverts
v2.7.11Compare Source
Bug Fixes
Performance Improvements
v2.7.10Compare Source
Bug Fixes
v2.7.9Compare Source
Bug Fixes
Features
v2.7.8Compare Source
Bug Fixes
<script setup>component resolution edge case with v3 (#12687) (a695c5a), closes #12685defineAsyncComponenttype (#12684) (ba7dd2c)Features
useListeners()helper (adf3ac8)v2.7.7Compare Source
Bug Fixes
v2.7.6Compare Source
Bug Fixes
v2.7.5Compare Source
Bug Fixes
vue.runtime.mjs(#12648) (08fb4a2)v2.7.4Compare Source
Bug Fixes
Features
v2.7.3Compare Source
Bug Fixes
v2.7.2Compare Source
Bug Fixes
Features
v2.7.1Compare Source
Bug Fixes
v2.7.0Compare Source
Backported Features
<script setup>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):
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: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)awaitin<script setup>(Vue 2 does not support async component initialization)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 v5Upgrade
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.0vue-demi:^0.13.1If 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-domjust for Volar template type inference support. All you need now is the following config intsconfig.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
v2.6.14Compare Source
Bug Fixes
Features
v2.6.13Compare Source
Bug Fixes
maybeComponentfunction in parser (#10167) (0603ff6), closes #10152Features
Performance Improvements
v2.6.12Compare Source
Bug Fixes
v2.6.11Compare Source
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.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.