diff --git a/.github/contributing.md b/.github/contributing.md
index 6439f123982..2554582b887 100644
--- a/.github/contributing.md
+++ b/.github/contributing.md
@@ -236,7 +236,7 @@ Tests that test against source code are grouped under `nr test-unit`, while test
### `nr test-dts`
-Runs `nr build-dts` first, then verify the type tests in `packages/dts-test` are working correctly against the actual built type declarations.
+Runs `nr build-dts` first, then verify the type tests in `packages-private/dts-test` are working correctly against the actual built type declarations.
## Project Structure
@@ -335,7 +335,7 @@ Test coverage is continuously deployed at https://coverage.vuejs.org. PRs that i
### Testing Type Definition Correctness
-Type tests are located in the `packages/dts-test` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by running `nr test-dts-only`.
+Type tests are located in the `packages-private/dts-test` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by running `nr test-dts-only`.
## Financial Contribution
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 9c04587027d..6acc5da248e 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -17,8 +17,8 @@
{
groupName: 'playground',
matchFileNames: [
- 'packages/sfc-playground/package.json',
- 'packages/template-explorer/package.json',
+ 'packages-private/sfc-playground/package.json',
+ 'packages-private/template-explorer/package.json',
],
},
{
@@ -54,5 +54,9 @@
// pinned
// https://github.com/vuejs/core/commit/a012e39b373f1b6918e5c89856e8f902e1bfa14d
'@rollup/plugin-replace',
+
+ // pinned, 5.0+ has exports issues
+ // https://github.com/vuejs/core/issues/11603
+ 'entities',
],
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cf1e9411a35..c8146fe789c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,15 @@
+## [3.4.38](https://github.com/vuejs/core/compare/v3.4.37...v3.4.38) (2024-08-15)
+
+
+### Bug Fixes
+
+* **build:** revert entities to 4.5 to avoid runtime resolution errors ([f349af7](https://github.com/vuejs/core/commit/f349af7b65b9f8605d8b7bafcc06c25ab1f2daf0)), closes [#11603](https://github.com/vuejs/core/issues/11603)
+* **compiler-core:** use ast-based check for function expressions when possible ([236cac3](https://github.com/vuejs/core/commit/236cac3ff285890b8468dc827c463d87a91e516f)), closes [#11615](https://github.com/vuejs/core/issues/11615)
+* **compiler-sfc:** handle keyof operator with index object ([#11581](https://github.com/vuejs/core/issues/11581)) ([74d26db](https://github.com/vuejs/core/commit/74d26dbbe3cf2f70d1b772284eec6743ea946f6d))
+* **types:** add fallback stub for DOM types when DOM lib is absent ([#11598](https://github.com/vuejs/core/issues/11598)) ([4db0085](https://github.com/vuejs/core/commit/4db0085de316e1b773f474597915f9071d6ae6c6))
+
+
+
## [3.4.37](https://github.com/vuejs/core/compare/v3.4.36...v3.4.37) (2024-08-08)
@@ -12,6 +24,7 @@
* Revert "fix(types/ref): correct type inference for nested refs ([#11536](https://github.com/vuejs/core/issues/11536))" ([3a56315](https://github.com/vuejs/core/commit/3a56315f94bc0e11cfbb288b65482ea8fc3a39b4))
* **runtime-core:** fix warning for missing event handler ([#11489](https://github.com/vuejs/core/issues/11489)) ([e359ff0](https://github.com/vuejs/core/commit/e359ff0046286aee03fe31656c023677be457e07)), closes [#4803](https://github.com/vuejs/core/issues/4803) [#8268](https://github.com/vuejs/core/issues/8268)
* **runtime-core:** prioritize using the provides from currentApp in nested createApp ([#11502](https://github.com/vuejs/core/issues/11502)) ([7e75de0](https://github.com/vuejs/core/commit/7e75de002f08076a02c9361a58fa1d0af1772964)), closes [#11488](https://github.com/vuejs/core/issues/11488)
+ * Note: this change will break `inject` calls inside Pinia stores that expects to be able to inject provided values from the component using the store. This is expected because the usage is relying on previously incorrect behavior.
* **runtime-dom:** apply css vars before mount ([#11538](https://github.com/vuejs/core/issues/11538)) ([fdc2a31](https://github.com/vuejs/core/commit/fdc2a31dbd4196d6432be16767a1bfdab1240d49)), closes [#11533](https://github.com/vuejs/core/issues/11533)
* **ssr:** ensure content is valid when rendering normal slot ([#11491](https://github.com/vuejs/core/issues/11491)) ([6c90324](https://github.com/vuejs/core/commit/6c903248703e2413c6197b9ad4d535f31c8eac39)), closes [#11326](https://github.com/vuejs/core/issues/11326)
* **types/ref:** correct type inference for nested refs ([#11536](https://github.com/vuejs/core/issues/11536)) ([536f623](https://github.com/vuejs/core/commit/536f62332c455ba82ef2979ba634b831f91928ba)), closes [#11532](https://github.com/vuejs/core/issues/11532) [#11537](https://github.com/vuejs/core/issues/11537)
diff --git a/eslint.config.js b/eslint.config.js
index 334787fd988..2e752e19107 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -76,7 +76,11 @@ export default tseslint.config(
// tests, no restrictions (runs in Node / Vitest with jsdom)
{
- files: ['**/__tests__/**', 'packages/dts-test/**'],
+ files: [
+ '**/__tests__/**',
+ 'packages-private/dts-test/**',
+ 'packages-private/dts-build-test/**',
+ ],
plugins: { vitest },
languageOptions: {
globals: {
@@ -119,7 +123,10 @@ export default tseslint.config(
// Private package, browser only + no syntax restrictions
{
- files: ['packages/template-explorer/**', 'packages/sfc-playground/**'],
+ files: [
+ 'packages-private/template-explorer/**',
+ 'packages-private/sfc-playground/**',
+ ],
rules: {
'no-restricted-globals': ['error', ...NodeGlobals],
'no-restricted-syntax': ['error', banConstEnum],
diff --git a/package.json b/package.json
index 7f5b3f5988b..3260dee9315 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"private": true,
- "version": "3.4.37",
+ "version": "3.4.38",
"packageManager": "pnpm@9.6.0",
"type": "module",
"scripts": {
@@ -20,7 +20,7 @@
"test-unit": "vitest -c vitest.unit.config.ts",
"test-e2e": "node scripts/build.js vue -f global -d && vitest -c vitest.e2e.config.ts",
"test-dts": "run-s build-dts test-dts-only",
- "test-dts-only": "tsc -p packages/dts-built-test/tsconfig.json && tsc -p ./packages/dts-test/tsconfig.test.json",
+ "test-dts-only": "tsc -p packages-private/dts-built-test/tsconfig.json && tsc -p ./packages-private/dts-test/tsconfig.test.json",
"test-coverage": "vitest -c vitest.unit.config.ts --coverage",
"test-bench": "vitest bench",
"release": "node scripts/release.js",
@@ -29,7 +29,7 @@
"dev-compiler": "run-p \"dev template-explorer\" serve",
"dev-sfc": "run-s dev-sfc-prepare dev-sfc-run",
"dev-sfc-prepare": "node scripts/pre-dev-sfc.js || npm run build-all-cjs",
- "dev-sfc-serve": "vite packages/sfc-playground --host",
+ "dev-sfc-serve": "vite packages-private/sfc-playground --host",
"dev-sfc-run": "run-p \"dev compiler-sfc -f esm-browser\" \"dev vue -if esm-bundler-runtime\" \"dev vue -ipf esm-browser-runtime\" \"dev server-renderer -if esm-bundler\" dev-sfc-serve",
"serve": "serve",
"open": "open http://localhost:3000/packages/template-explorer/local.html",
@@ -38,7 +38,7 @@
"build-runtime-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js vue -f esm-browser-runtime",
"build-browser-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler && node scripts/build.js vue -f esm-browser",
"build-ssr-esm": "node scripts/build.js compiler-sfc server-renderer -f esm-browser",
- "build-sfc-playground-self": "cd packages/sfc-playground && npm run build",
+ "build-sfc-playground-self": "cd packages-private/sfc-playground && npm run build",
"preinstall": "npx only-allow pnpm",
"postinstall": "simple-git-hooks"
},
diff --git a/packages/dts-built-test/README.md b/packages-private/dts-built-test/README.md
similarity index 65%
rename from packages/dts-built-test/README.md
rename to packages-private/dts-built-test/README.md
index 8191d66e32e..5c14f2190cc 100644
--- a/packages/dts-built-test/README.md
+++ b/packages-private/dts-built-test/README.md
@@ -2,4 +2,4 @@
This package is private and for testing only. It is used to verify edge cases for external libraries that build their types using Vue core types - e.g. Vuetify as in [#8376](https://github.com/vuejs/core/issues/8376).
-When running the `build-dts` task, this package's types are built alongside other packages. Then, during `test-dts-only` it is imported and used in [`packages/dts-test/built.test-d.ts`](https://github.com/vuejs/core/blob/main/packages/dts-test/built.test-d.ts) to verify that the built types work correctly.
+When running the `build-dts` task, this package's types are built alongside other packages. Then, during `test-dts-only` it is imported and used in [`packages-private/dts-test/built.test-d.ts`](https://github.com/vuejs/core/blob/main/packages-private/dts-test/built.test-d.ts) to verify that the built types work correctly.
diff --git a/packages/dts-built-test/package.json b/packages-private/dts-built-test/package.json
similarity index 85%
rename from packages/dts-built-test/package.json
rename to packages-private/dts-built-test/package.json
index dd81cab68d6..ffcaa4a676a 100644
--- a/packages/dts-built-test/package.json
+++ b/packages-private/dts-built-test/package.json
@@ -1,5 +1,5 @@
{
- "name": "@vue/dts-built-test",
+ "name": "dts-built-test",
"private": true,
"version": "0.0.0",
"types": "dist/index.d.ts",
diff --git a/packages/dts-built-test/src/index.ts b/packages-private/dts-built-test/src/index.ts
similarity index 100%
rename from packages/dts-built-test/src/index.ts
rename to packages-private/dts-built-test/src/index.ts
diff --git a/packages/dts-built-test/tsconfig.json b/packages-private/dts-built-test/tsconfig.json
similarity index 100%
rename from packages/dts-built-test/tsconfig.json
rename to packages-private/dts-built-test/tsconfig.json
diff --git a/packages/dts-test/README.md b/packages-private/dts-test/README.md
similarity index 52%
rename from packages/dts-test/README.md
rename to packages-private/dts-test/README.md
index 6f1b1da1d0e..075fc3431cd 100644
--- a/packages/dts-test/README.md
+++ b/packages-private/dts-test/README.md
@@ -4,4 +4,4 @@ Tests TypeScript types to ensure the types remain as expected.
- This directory is included in the root `tsconfig.json`, where package imports are aliased to `src` directories, so in IDEs and the `pnpm check` script the types are validated against source code.
-- When running `tsc` with `packages/dts-test/tsconfig.test.json`, packages are resolved using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-types`.
+- When running `tsc` with `packages-private/dts-test/tsconfig.test.json`, packages are resolved using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-dts`.
diff --git a/packages/dts-test/appDirective.test-d.ts b/packages-private/dts-test/appDirective.test-d.ts
similarity index 100%
rename from packages/dts-test/appDirective.test-d.ts
rename to packages-private/dts-test/appDirective.test-d.ts
diff --git a/packages/dts-test/appUse.test-d.ts b/packages-private/dts-test/appUse.test-d.ts
similarity index 100%
rename from packages/dts-test/appUse.test-d.ts
rename to packages-private/dts-test/appUse.test-d.ts
diff --git a/packages/dts-test/built.test-d.ts b/packages-private/dts-test/built.test-d.ts
similarity index 82%
rename from packages/dts-test/built.test-d.ts
rename to packages-private/dts-test/built.test-d.ts
index ebff2955cfb..c2b4fb6d839 100644
--- a/packages/dts-test/built.test-d.ts
+++ b/packages-private/dts-test/built.test-d.ts
@@ -1,4 +1,4 @@
-import { CustomPropsNotErased } from '@vue/dts-built-test'
+import { CustomPropsNotErased } from 'dts-built-test/src/index'
import { describe, expectType } from './utils'
declare module 'vue' {
diff --git a/packages/dts-test/compiler.test-d.ts b/packages-private/dts-test/compiler.test-d.ts
similarity index 100%
rename from packages/dts-test/compiler.test-d.ts
rename to packages-private/dts-test/compiler.test-d.ts
diff --git a/packages/dts-test/component.test-d.ts b/packages-private/dts-test/component.test-d.ts
similarity index 100%
rename from packages/dts-test/component.test-d.ts
rename to packages-private/dts-test/component.test-d.ts
diff --git a/packages/dts-test/componentInstance.test-d.tsx b/packages-private/dts-test/componentInstance.test-d.tsx
similarity index 100%
rename from packages/dts-test/componentInstance.test-d.tsx
rename to packages-private/dts-test/componentInstance.test-d.tsx
diff --git a/packages/dts-test/componentTypeExtensions.test-d.tsx b/packages-private/dts-test/componentTypeExtensions.test-d.tsx
similarity index 100%
rename from packages/dts-test/componentTypeExtensions.test-d.tsx
rename to packages-private/dts-test/componentTypeExtensions.test-d.tsx
diff --git a/packages/dts-test/defineComponent.test-d.tsx b/packages-private/dts-test/defineComponent.test-d.tsx
similarity index 100%
rename from packages/dts-test/defineComponent.test-d.tsx
rename to packages-private/dts-test/defineComponent.test-d.tsx
diff --git a/packages/dts-test/defineCustomElement.test-d.ts b/packages-private/dts-test/defineCustomElement.test-d.ts
similarity index 100%
rename from packages/dts-test/defineCustomElement.test-d.ts
rename to packages-private/dts-test/defineCustomElement.test-d.ts
diff --git a/packages/dts-test/extractProps.test-d.ts b/packages-private/dts-test/extractProps.test-d.ts
similarity index 100%
rename from packages/dts-test/extractProps.test-d.ts
rename to packages-private/dts-test/extractProps.test-d.ts
diff --git a/packages/dts-test/functionalComponent.test-d.tsx b/packages-private/dts-test/functionalComponent.test-d.tsx
similarity index 100%
rename from packages/dts-test/functionalComponent.test-d.tsx
rename to packages-private/dts-test/functionalComponent.test-d.tsx
diff --git a/packages/dts-test/h.test-d.ts b/packages-private/dts-test/h.test-d.ts
similarity index 100%
rename from packages/dts-test/h.test-d.ts
rename to packages-private/dts-test/h.test-d.ts
diff --git a/packages/dts-test/inject.test-d.ts b/packages-private/dts-test/inject.test-d.ts
similarity index 100%
rename from packages/dts-test/inject.test-d.ts
rename to packages-private/dts-test/inject.test-d.ts
diff --git a/packages/dts-test/package.json b/packages-private/dts-test/package.json
similarity index 74%
rename from packages/dts-test/package.json
rename to packages-private/dts-test/package.json
index a6ea96bfa86..72b1b6ea630 100644
--- a/packages/dts-test/package.json
+++ b/packages-private/dts-test/package.json
@@ -4,6 +4,6 @@
"version": "0.0.0",
"dependencies": {
"vue": "workspace:*",
- "@vue/dts-built-test": "workspace:*"
+ "dts-built-test": "workspace:*"
}
}
diff --git a/packages/dts-test/reactivity.test-d.ts b/packages-private/dts-test/reactivity.test-d.ts
similarity index 100%
rename from packages/dts-test/reactivity.test-d.ts
rename to packages-private/dts-test/reactivity.test-d.ts
diff --git a/packages/dts-test/ref.test-d.ts b/packages-private/dts-test/ref.test-d.ts
similarity index 100%
rename from packages/dts-test/ref.test-d.ts
rename to packages-private/dts-test/ref.test-d.ts
diff --git a/packages/dts-test/setupHelpers.test-d.ts b/packages-private/dts-test/setupHelpers.test-d.ts
similarity index 100%
rename from packages/dts-test/setupHelpers.test-d.ts
rename to packages-private/dts-test/setupHelpers.test-d.ts
diff --git a/packages/dts-test/tsconfig.test.json b/packages-private/dts-test/tsconfig.test.json
similarity index 100%
rename from packages/dts-test/tsconfig.test.json
rename to packages-private/dts-test/tsconfig.test.json
diff --git a/packages/dts-test/tsx.test-d.tsx b/packages-private/dts-test/tsx.test-d.tsx
similarity index 100%
rename from packages/dts-test/tsx.test-d.tsx
rename to packages-private/dts-test/tsx.test-d.tsx
diff --git a/packages/dts-test/utils.d.ts b/packages-private/dts-test/utils.d.ts
similarity index 100%
rename from packages/dts-test/utils.d.ts
rename to packages-private/dts-test/utils.d.ts
diff --git a/packages/dts-test/watch.test-d.ts b/packages-private/dts-test/watch.test-d.ts
similarity index 100%
rename from packages/dts-test/watch.test-d.ts
rename to packages-private/dts-test/watch.test-d.ts
diff --git a/packages/sfc-playground/README.md b/packages-private/sfc-playground/README.md
similarity index 100%
rename from packages/sfc-playground/README.md
rename to packages-private/sfc-playground/README.md
diff --git a/packages/sfc-playground/index.html b/packages-private/sfc-playground/index.html
similarity index 100%
rename from packages/sfc-playground/index.html
rename to packages-private/sfc-playground/index.html
diff --git a/packages/sfc-playground/package.json b/packages-private/sfc-playground/package.json
similarity index 90%
rename from packages/sfc-playground/package.json
rename to packages-private/sfc-playground/package.json
index 9d38811c769..b43247e9cb9 100644
--- a/packages/sfc-playground/package.json
+++ b/packages-private/sfc-playground/package.json
@@ -9,7 +9,7 @@
"serve": "vite preview"
},
"devDependencies": {
- "@vitejs/plugin-vue": "^5.1.2",
+ "@vitejs/plugin-vue": "catalog:",
"vite": "catalog:"
},
"dependencies": {
diff --git a/packages/sfc-playground/public/logo.svg b/packages-private/sfc-playground/public/logo.svg
similarity index 100%
rename from packages/sfc-playground/public/logo.svg
rename to packages-private/sfc-playground/public/logo.svg
diff --git a/packages/sfc-playground/src/App.vue b/packages-private/sfc-playground/src/App.vue
similarity index 100%
rename from packages/sfc-playground/src/App.vue
rename to packages-private/sfc-playground/src/App.vue
diff --git a/packages/sfc-playground/src/Header.vue b/packages-private/sfc-playground/src/Header.vue
similarity index 98%
rename from packages/sfc-playground/src/Header.vue
rename to packages-private/sfc-playground/src/Header.vue
index 8e810d89441..922a2b111ac 100644
--- a/packages/sfc-playground/src/Header.vue
+++ b/packages-private/sfc-playground/src/Header.vue
@@ -125,7 +125,7 @@ function toggleDark() {
{
- const filePath = path.resolve(__dirname, file)
+ const filePath = path.resolve(__dirname, '../../packages', file)
const basename = path.basename(file)
if (!fs.existsSync(filePath)) {
throw new Error(
@@ -49,11 +49,11 @@ function copyVuePlugin(): Plugin {
})
}
- copyFile(`../vue/dist/vue.esm-browser.js`)
- copyFile(`../vue/dist/vue.esm-browser.prod.js`)
- copyFile(`../vue/dist/vue.runtime.esm-browser.js`)
- copyFile(`../vue/dist/vue.runtime.esm-browser.prod.js`)
- copyFile(`../server-renderer/dist/server-renderer.esm-browser.js`)
+ copyFile(`vue/dist/vue.esm-browser.js`)
+ copyFile(`vue/dist/vue.esm-browser.prod.js`)
+ copyFile(`vue/dist/vue.runtime.esm-browser.js`)
+ copyFile(`vue/dist/vue.runtime.esm-browser.prod.js`)
+ copyFile(`server-renderer/dist/server-renderer.esm-browser.js`)
},
}
}
diff --git a/packages/template-explorer/README.md b/packages-private/template-explorer/README.md
similarity index 100%
rename from packages/template-explorer/README.md
rename to packages-private/template-explorer/README.md
diff --git a/packages/template-explorer/_redirects b/packages-private/template-explorer/_redirects
similarity index 100%
rename from packages/template-explorer/_redirects
rename to packages-private/template-explorer/_redirects
diff --git a/packages/template-explorer/index.html b/packages-private/template-explorer/index.html
similarity index 100%
rename from packages/template-explorer/index.html
rename to packages-private/template-explorer/index.html
diff --git a/packages/template-explorer/local.html b/packages-private/template-explorer/local.html
similarity index 100%
rename from packages/template-explorer/local.html
rename to packages-private/template-explorer/local.html
diff --git a/packages/template-explorer/package.json b/packages-private/template-explorer/package.json
similarity index 100%
rename from packages/template-explorer/package.json
rename to packages-private/template-explorer/package.json
diff --git a/packages/template-explorer/src/index.ts b/packages-private/template-explorer/src/index.ts
similarity index 100%
rename from packages/template-explorer/src/index.ts
rename to packages-private/template-explorer/src/index.ts
diff --git a/packages/template-explorer/src/options.ts b/packages-private/template-explorer/src/options.ts
similarity index 100%
rename from packages/template-explorer/src/options.ts
rename to packages-private/template-explorer/src/options.ts
diff --git a/packages/template-explorer/src/theme.ts b/packages-private/template-explorer/src/theme.ts
similarity index 100%
rename from packages/template-explorer/src/theme.ts
rename to packages-private/template-explorer/src/theme.ts
diff --git a/packages/template-explorer/style.css b/packages-private/template-explorer/style.css
similarity index 100%
rename from packages/template-explorer/style.css
rename to packages-private/template-explorer/style.css
diff --git a/packages-private/vite-debug/App.vue b/packages-private/vite-debug/App.vue
new file mode 100644
index 00000000000..95b3be8eee5
--- /dev/null
+++ b/packages-private/vite-debug/App.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/packages-private/vite-debug/README.md b/packages-private/vite-debug/README.md
new file mode 100644
index 00000000000..4f035ae6f8d
--- /dev/null
+++ b/packages-private/vite-debug/README.md
@@ -0,0 +1 @@
+This package is used for debugging issues that are related to `@vitejs/plugin-vue`, or can only be reproduced in a Vite-based setup. It aims to be as close to production as possible so Vue packages are resolved to the dist files instead of source.
diff --git a/packages-private/vite-debug/index.html b/packages-private/vite-debug/index.html
new file mode 100644
index 00000000000..79052a023ba
--- /dev/null
+++ b/packages-private/vite-debug/index.html
@@ -0,0 +1,2 @@
+
+
diff --git a/packages-private/vite-debug/main.ts b/packages-private/vite-debug/main.ts
new file mode 100644
index 00000000000..52668a0a545
--- /dev/null
+++ b/packages-private/vite-debug/main.ts
@@ -0,0 +1,6 @@
+import { createApp } from 'vue'
+import App from './App.vue'
+
+const app = createApp(App)
+
+app.mount('#app')
diff --git a/packages-private/vite-debug/package.json b/packages-private/vite-debug/package.json
new file mode 100644
index 00000000000..b0f2bad2b2d
--- /dev/null
+++ b/packages-private/vite-debug/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "vite-debug",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "serve": "vite preview"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "catalog:",
+ "vite": "catalog:",
+ "vue": "workspace:*"
+ }
+}
diff --git a/packages-private/vite-debug/tsconfig.json b/packages-private/vite-debug/tsconfig.json
new file mode 100644
index 00000000000..ceecb1cde14
--- /dev/null
+++ b/packages-private/vite-debug/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "compilerOptions": {
+ "module": "esnext",
+ "moduleResolution": "bundler"
+ },
+ "include": ["./*"]
+}
diff --git a/packages-private/vite-debug/vite.config.ts b/packages-private/vite-debug/vite.config.ts
new file mode 100644
index 00000000000..c40aa3c361b
--- /dev/null
+++ b/packages-private/vite-debug/vite.config.ts
@@ -0,0 +1,6 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+export default defineConfig({
+ plugins: [vue()],
+})
diff --git a/packages/compiler-core/__tests__/transforms/vOn.spec.ts b/packages/compiler-core/__tests__/transforms/vOn.spec.ts
index 27d5027533b..e29b2ed3142 100644
--- a/packages/compiler-core/__tests__/transforms/vOn.spec.ts
+++ b/packages/compiler-core/__tests__/transforms/vOn.spec.ts
@@ -285,6 +285,21 @@ describe('compiler: transform v-on', () => {
},
],
})
+
+ const { node: node2 } = parseWithVOn(
+ `