Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Oct 18, 2021

This PR contains the following updates:

Package Change Age Confidence
vue-template-compiler (source) 2.6.14 -> 2.7.16 age confidence

Release Notes

vuejs/vue (vue-template-compiler)

v2.7.16

Compare Source

Bug Fixes
  • lifecycle: ensure component effect scopes are disconnected (56ce7f8), closes #​13134

v2.7.15

Compare Source

Bug Fixes

v2.7.14

Compare Source

Bug Fixes

v2.7.13

Compare Source

Bug Fixes

v2.7.12

Compare Source

Reverts

v2.7.11

Compare Source

Bug Fixes
Performance Improvements
  • improve unsub perf for deps with massive amount of subs (8880b55), closes #​12696

v2.7.10

Compare Source

Bug Fixes

v2.7.9

Compare Source

Bug Fixes
Features

v2.7.8

Compare Source

Bug Fixes
Features
  • setup: support listeners on setup context + useListeners() helper (adf3ac8)

v2.7.7

Compare Source

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

Compare Source

Bug Fixes

v2.7.5

Compare Source

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

Compare Source

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

v2.7.3

Compare Source

Bug Fixes

v2.7.2

Compare Source

Bug Fixes
  • compiler-sfc: preserve old deindent behavior for pug (1294385), closes #​12611
Features

v2.7.1

Compare Source

Bug Fixes
  • lifecycle: ensure component effect scopes are disconnected (56ce7f8), closes #​13134

v2.7.0

Compare Source

Backported Features

In addition, the following APIs are also supported:

  • defineComponent() with improved type inference (compared to Vue.extend)

  • h(), useSlot(), useAttrs(), useCssModules()

  • set(), del() and nextTick() are also provided as named exports in ESM builds.

  • The emits option 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 .js files, 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 Vue object.

  • 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(), and shallowReactive() 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 await in <script setup> (Vue 2 does not support async component initialization)
  • ❌ TypeScript syntax in template expressions (incompatible w/ Vue 2 parser)
  • ❌ Reactivity transform (still experimental)
  • expose option is not supported for options components (but defineExpose() is supported in <script setup>).
TypeScript Changes
  • defineComponent provides improved type inference similar to that of Vue 3. Note the type of this inside defineComponent() is not interoperable with this from Vue.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
  1. Upgrade local @vue/cli-xxx dependencies the latest version in your major version range (if applicable):

    • ~4.5.18 for v4
    • ~5.0.6 for v5
  2. Upgrade vue to ^2.7.0. You can also remove vue-template-compiler from 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.

  3. 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_modules and the lockfile and perform a fresh install to ensure they are bumped to the latest version.

  4. If you were previously using @vue/composition-api, update imports from it to vue instead. Note that some APIs exported by the plugin, e.g. createApp, are not ported in 2.7.

  5. Update eslint-plugin-vue to latest version (9+) if you run into unused variable lint errors when using <script setup>.

  6. 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)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
Copy link
Contributor Author

renovate bot commented Oct 18, 2021

⚠ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/eslint
npm ERR!   dev eslint@"7.32.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer eslint@">= 1.6.0 < 7.0.0" from @vue/[email protected]
npm ERR! node_modules/@vue/cli-plugin-eslint
npm ERR!   dev @vue/cli-plugin-eslint@"4.5.13" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! 
npm ERR! For a full report see:
npm ERR! /tmp/renovate/cache/others/npm/_logs/2023-12-24T16_07_57_880Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2023-12-24T16_07_57_880Z-debug-0.log

@renovate renovate bot force-pushed the renovate/vue-monorepo branch from cd492f0 to faa33c5 Compare October 28, 2021 14:01
@renovate renovate bot changed the title Update vue monorepo to v4.5.14 Update vue monorepo to v4.5.15 Oct 28, 2021
@renovate renovate bot force-pushed the renovate/vue-monorepo branch from faa33c5 to 6535a44 Compare March 26, 2022 15:37
@renovate renovate bot changed the title Update vue monorepo to v4.5.15 Update vue monorepo to v4.5.17 Mar 26, 2022
@renovate renovate bot force-pushed the renovate/vue-monorepo branch from 6535a44 to 045ba91 Compare June 18, 2022 21:23
@renovate renovate bot changed the title Update vue monorepo to v4.5.17 Update vue monorepo to v4.5.18 Jun 18, 2022
@renovate renovate bot force-pushed the renovate/vue-monorepo branch from 045ba91 to 98308f4 Compare September 25, 2022 16:25
@renovate renovate bot changed the title Update vue monorepo to v4.5.18 Update dependency vue-template-compiler to v2.7.10 Sep 25, 2022
@renovate renovate bot force-pushed the renovate/vue-monorepo branch from 98308f4 to ecac0a0 Compare November 20, 2022 17:58
@renovate renovate bot changed the title Update dependency vue-template-compiler to v2.7.10 Update dependency vue-template-compiler to v2.7.14 Nov 20, 2022
@renovate renovate bot force-pushed the renovate/vue-monorepo branch from ecac0a0 to 6a41088 Compare October 23, 2023 11:06
@renovate renovate bot changed the title Update dependency vue-template-compiler to v2.7.14 Update dependency vue-template-compiler to v2.7.15 Oct 23, 2023
@renovate renovate bot force-pushed the renovate/vue-monorepo branch from 6a41088 to c031a3c Compare December 24, 2023 16:08
@renovate renovate bot changed the title Update dependency vue-template-compiler to v2.7.15 Update dependency vue-template-compiler to v2.7.16 Dec 24, 2023
@renovate
Copy link
Contributor Author

renovate bot commented Aug 10, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm warn Unknown env config "store". This will stop working in the next major version of npm.
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: [email protected]
npm error Found: [email protected]
npm error node_modules/eslint
npm error   dev eslint@"7.32.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peer eslint@">= 1.6.0 < 7.0.0" from @vue/[email protected]
npm error node_modules/@vue/cli-plugin-eslint
npm error   dev @vue/cli-plugin-eslint@"4.5.13" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2025-12-03T18_28_52_489Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2025-12-03T18_28_52_489Z-debug-0.log

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant