vue-sanity
vue-sanity copied to clipboard
chore(deps): update vue monorepo to v2.7.16
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| vue-server-renderer (source) | 2.6.14 -> 2.7.16 |
||||
| vue-template-compiler (source) | 2.6.14 -> 2.7.16 |
Release Notes
vuejs/vue (vue-server-renderer)
v2.7.16
Bug Fixes
v2.7.15
Bug Fixes
- compiler-sfc: add semicolon after
definePropsstatement (#12879) (51fef2c) - compiler-sfc: fix macro usage in multi-variable declaration (#12873) (d27c128)
- compiler-sfc: Optimize the value of emitIdentifier (#12851) (bb59751)
- compiler-sfc: Resolve object expression parsing errors in
v-on(#12862) (b8c8b3f) - lifecycle: scope might changed when call hook (#13070) (74ca5a1)
- patch: clone insert hooks to avoid being mutated during iteration (#12905) (c223634)
- types/sfc: improve the type inference using
withDefaults(#12872) (099401e) - types: correct serverPrefetch this type (#13068) (67c1d26), closes #12488
v2.7.14
Bug Fixes
- compiler-sfc: fix template usage check edge case for v-slot destructured default value (#12842) (5e3d4e9), closes #12841
- provide/inject: do not mutate original provide options during merge (d1899ca), closes #12854
- reactivity: avoid using WeakMap for IE compatibility (29b5f58), closes #12837
- types: fix spreading VNodeData in tsx (#12789) (f7db7f3), closes #12778
- types: stricter type condition for
EventHandlers(#12840) (0b3cf7d), closes #12832
v2.7.13
Bug Fixes
- effectScope: calling off() of a detached scope should not break currentScope (800207c), closes #12825
- types: style attribute svg (#12800) (8e26261)
- watch: avoid traversing objects that are marked non-reactive (#12806) (5960f05)
v2.7.12
Reverts
- Revert "fix(setup): setup hook should be called before beforeCreate" (e80cd09), closes #12802 #12821 #12822
v2.7.11
Bug Fixes
- build: enforce LF line ending in built files (738f4b3), closes #12819
- compiler-sfc: export parseComponent for compat with fork-ts-checker-webpack-plugin (0d6d972), closes #12719
- reactivity: check skip first before checking ref when creating observer (#12813) (5d26f81), closes #12812
- reactivity: use WeakMap for proxy/raw checks, compat with non-extensible objects (4a0d88e), closes #12799 #12798
- setup: setup hook should be called before beforeCreate (e1342df), closes #12802
- sfc: prune returned bindings for non-TS as well (fb13930), closes #12765
- sfc: remove sfc scoped deep syntax deprecation warnings (2f335b2)
- types: fix error with options watch (#12779) (bc5b92a), closes #12780
- types: support Ref and function types in tsx ref attribute (#12759) (87f69aa), closes #12758
- types: vue 3 directive type compatibility (#12792) (27eed82)
Performance Improvements
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
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.0vue-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)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "before 4am on Monday" (UTC).
🚦 Automerge: Enabled.
♻ 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.
- [ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎
This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.
New and removed dependencies detected. Learn more about Socket for GitHub ↗︎
| Package | New capabilities | Transitives | Size | Publisher |
|---|---|---|---|---|
| npm/[email protected] | environment, eval, filesystem, unsafe | +22 |
2.11 MB | yyx990803 |
🚮 Removed packages: npm/[email protected])
[!WARNING]
Rate limit exceeded
@renovate[bot] has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 22 minutes and 5 seconds before requesting another review.
How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the
@coderabbitai reviewcommand as a PR comment. Alternatively, push new commits to this PR.We recommend that you space out your commits to avoid hitting the rate limit.
How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization.
Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.
Please see our FAQ for further information.
Commits
Files that changed from the base of the PR and between 0e1b6e2409467d85539222b98613b064095ad694 and 57542e3a4e6146320cdb8ddd135c6ef54e66b98e.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Tips
Chat
There are 3 ways to chat with CodeRabbit:
- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
I pushed a fix in commit <commit_id>.Generate unit testing code for this file.Open a follow-up GitHub issue for this discussion.
- Files and specific lines of code (under the "Files changed" tab): Tag
@coderabbitaiin a new review comment at the desired location with your query. Examples:@coderabbitai generate unit testing code for this file.@coderabbitai modularize this function.
- PR comments: Tag
@coderabbitaiin a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:@coderabbitai generate interesting stats about this repository and render them as a table.@coderabbitai show all the console.log statements in this repository.@coderabbitai read src/utils.ts and generate unit testing code.@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.@coderabbitai help me debug CodeRabbit configuration file.
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.
CodeRabbit Commands (Invoked using PR comments)
@coderabbitai pauseto pause the reviews on a PR.@coderabbitai resumeto resume the paused reviews.@coderabbitai reviewto trigger an incremental review. This is useful when automatic reviews are disabled for the repository.@coderabbitai full reviewto do a full review from scratch and review all the files again.@coderabbitai summaryto regenerate the summary of the PR.@coderabbitai resolveresolve all the CodeRabbit review comments.@coderabbitai configurationto show the current CodeRabbit configuration for the repository.@coderabbitai helpto get help.
Other keywords and placeholders
- Add
@coderabbitai ignoreanywhere in the PR description to prevent this PR from being reviewed. - Add
@coderabbitai summaryto generate the high-level summary at a specific location in the PR description. - Add
@coderabbitaianywhere in the PR title to generate the title automatically.
CodeRabbit Configuration File (.coderabbit.yaml)
- You can programmatically configure CodeRabbit by adding a
.coderabbit.yamlfile to the root of your repository. - Please see the configuration documentation for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation:
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
Documentation and Community
- Visit our Documentation for detailed information on how to use CodeRabbit.
- Join our Discord Community to get help, request features, and share feedback.
- Follow us on X/Twitter for updates and announcements.