From 7cf0c851b21e80d27e462583fbc26ce930177478 Mon Sep 17 00:00:00 2001
From: TkDodo <office@dorfmeister.cc>
Date: Wed, 22 Jan 2025 12:03:18 +0100
Subject: [PATCH] fix: dynamic alisases for vitest

---
 .../root.vite.config.js                         |  1 +
 .../vite.config.ts                              |  5 +++++
 .../root.vite.config.js                         |  1 +
 .../angular-query-experimental/vite.config.ts   |  5 +++++
 .../eslint-plugin-query/root.vite.config.js     |  1 +
 packages/eslint-plugin-query/vite.config.ts     |  5 +++++
 .../root.vite.config.js                         |  1 +
 .../vite.config.ts                              |  5 +++++
 packages/query-codemods/root.vite.config.js     |  1 +
 packages/query-codemods/tsconfig.json           |  2 +-
 packages/query-codemods/vite.config.ts          |  7 ++++++-
 packages/query-core/root.vite.config.js         |  1 +
 packages/query-core/vite.config.ts              |  5 +++++
 packages/query-devtools/root.vite.config.js     |  1 +
 packages/query-devtools/vite.config.ts          |  5 +++++
 .../root.vite.config.js                         |  1 +
 .../query-persist-client-core/vite.config.ts    |  5 +++++
 .../root.vite.config.js                         |  1 +
 .../query-sync-storage-persister/vite.config.ts |  5 +++++
 .../react-query-devtools/root.vite.config.js    |  1 +
 packages/react-query-devtools/vite.config.ts    |  5 +++++
 .../root.vite.config.js                         |  1 +
 .../vite.config.ts                              |  5 +++++
 .../root.vite.config.js                         |  1 +
 .../react-query-persist-client/vite.config.ts   |  5 +++++
 packages/react-query/root.vite.config.js        |  1 +
 packages/react-query/vite.config.ts             |  4 ++++
 .../solid-query-devtools/root.vite.config.js    |  1 +
 packages/solid-query-devtools/vite.config.ts    |  5 +++++
 .../root.vite.config.js                         |  1 +
 .../solid-query-persist-client/vite.config.ts   |  5 +++++
 packages/solid-query/root.vite.config.js        |  1 +
 packages/solid-query/vite.config.ts             |  5 +++++
 .../svelte-query-devtools/root.vite.config.js   |  1 +
 packages/svelte-query-devtools/tsconfig.json    |  3 +--
 packages/svelte-query-devtools/vite.config.ts   |  5 +++++
 .../root.vite.config.js                         |  1 +
 .../svelte-query-persist-client/tsconfig.json   |  3 +--
 .../svelte-query-persist-client/vite.config.ts  |  7 ++++++-
 packages/svelte-query/root.vite.config.js       |  1 +
 packages/svelte-query/tsconfig.json             |  3 +--
 packages/svelte-query/vite.config.ts            |  7 ++++++-
 packages/vue-query-devtools/root.vite.config.js |  1 +
 packages/vue-query-devtools/vite.config.ts      |  5 +++++
 packages/vue-query/root.vite.config.js          |  1 +
 packages/vue-query/vite.config.ts               |  5 +++++
 scripts/getViteAliases.js                       | 17 +++++++++++++++++
 47 files changed, 149 insertions(+), 10 deletions(-)
 create mode 120000 packages/angular-query-devtools-experimental/root.vite.config.js
 create mode 120000 packages/angular-query-experimental/root.vite.config.js
 create mode 120000 packages/eslint-plugin-query/root.vite.config.js
 create mode 120000 packages/query-async-storage-persister/root.vite.config.js
 create mode 120000 packages/query-codemods/root.vite.config.js
 create mode 120000 packages/query-core/root.vite.config.js
 create mode 120000 packages/query-devtools/root.vite.config.js
 create mode 120000 packages/query-persist-client-core/root.vite.config.js
 create mode 120000 packages/query-sync-storage-persister/root.vite.config.js
 create mode 120000 packages/react-query-devtools/root.vite.config.js
 create mode 120000 packages/react-query-next-experimental/root.vite.config.js
 create mode 120000 packages/react-query-persist-client/root.vite.config.js
 create mode 120000 packages/react-query/root.vite.config.js
 create mode 120000 packages/solid-query-devtools/root.vite.config.js
 create mode 120000 packages/solid-query-persist-client/root.vite.config.js
 create mode 120000 packages/solid-query/root.vite.config.js
 create mode 120000 packages/svelte-query-devtools/root.vite.config.js
 create mode 120000 packages/svelte-query-persist-client/root.vite.config.js
 create mode 120000 packages/svelte-query/root.vite.config.js
 create mode 120000 packages/vue-query-devtools/root.vite.config.js
 create mode 120000 packages/vue-query/root.vite.config.js
 create mode 100644 scripts/getViteAliases.js

diff --git a/packages/angular-query-devtools-experimental/root.vite.config.js b/packages/angular-query-devtools-experimental/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/angular-query-devtools-experimental/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/angular-query-devtools-experimental/vite.config.ts b/packages/angular-query-devtools-experimental/vite.config.ts
index ede5bd93a1..e822fd87c6 100644
--- a/packages/angular-query-devtools-experimental/vite.config.ts
+++ b/packages/angular-query-devtools-experimental/vite.config.ts
@@ -1,9 +1,14 @@
 import { defineConfig } from 'vitest/config'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/angular-query-experimental/root.vite.config.js b/packages/angular-query-experimental/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/angular-query-experimental/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/angular-query-experimental/vite.config.ts b/packages/angular-query-experimental/vite.config.ts
index ede5bd93a1..e822fd87c6 100644
--- a/packages/angular-query-experimental/vite.config.ts
+++ b/packages/angular-query-experimental/vite.config.ts
@@ -1,9 +1,14 @@
 import { defineConfig } from 'vitest/config'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/eslint-plugin-query/root.vite.config.js b/packages/eslint-plugin-query/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/eslint-plugin-query/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/eslint-plugin-query/vite.config.ts b/packages/eslint-plugin-query/vite.config.ts
index c54b571b9b..085e7d77ae 100644
--- a/packages/eslint-plugin-query/vite.config.ts
+++ b/packages/eslint-plugin-query/vite.config.ts
@@ -1,10 +1,15 @@
 import { defineConfig, mergeConfig } from 'vitest/config'
 import { tanstackViteConfig } from '@tanstack/config/vite'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 const config = defineConfig({
   plugins: [tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/query-async-storage-persister/root.vite.config.js b/packages/query-async-storage-persister/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/query-async-storage-persister/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/query-async-storage-persister/vite.config.ts b/packages/query-async-storage-persister/vite.config.ts
index 62ea859ec5..119946da20 100644
--- a/packages/query-async-storage-persister/vite.config.ts
+++ b/packages/query-async-storage-persister/vite.config.ts
@@ -1,9 +1,14 @@
 import { defineConfig } from 'vitest/config'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/query-codemods/root.vite.config.js b/packages/query-codemods/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/query-codemods/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/query-codemods/tsconfig.json b/packages/query-codemods/tsconfig.json
index 380d87883d..de9f8a5009 100644
--- a/packages/query-codemods/tsconfig.json
+++ b/packages/query-codemods/tsconfig.json
@@ -6,5 +6,5 @@
     "baseUrl": ".",
     "moduleResolution": "Bundler"
   },
-  "include": ["src", "*.config.js", "*.config.ts"]
+  "include": ["src", "*.config.js", "*.config.ts", "package.json"]
 }
diff --git a/packages/query-codemods/vite.config.ts b/packages/query-codemods/vite.config.ts
index d42f4c8cb3..09fc57319c 100644
--- a/packages/query-codemods/vite.config.ts
+++ b/packages/query-codemods/vite.config.ts
@@ -1,9 +1,14 @@
 import { defineConfig } from 'vitest/config'
-import packageJson from './package.json'
 import tsconfigPaths from 'vite-tsconfig-paths'
 
+import { dynamicAliases } from './root.vite.config'
+import packageJson from './package.json'
+
 export default defineConfig({
   plugins: [tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/query-core/root.vite.config.js b/packages/query-core/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/query-core/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/query-core/vite.config.ts b/packages/query-core/vite.config.ts
index f1190f53aa..a87b97763c 100644
--- a/packages/query-core/vite.config.ts
+++ b/packages/query-core/vite.config.ts
@@ -1,9 +1,14 @@
 import { defineConfig } from 'vitest/config'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/query-devtools/root.vite.config.js b/packages/query-devtools/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/query-devtools/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/query-devtools/vite.config.ts b/packages/query-devtools/vite.config.ts
index 409c11b632..d0a7ac4d42 100644
--- a/packages/query-devtools/vite.config.ts
+++ b/packages/query-devtools/vite.config.ts
@@ -1,10 +1,15 @@
 import solid from 'vite-plugin-solid'
 import { defineConfig } from 'vitest/config'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [solid(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/query-persist-client-core/root.vite.config.js b/packages/query-persist-client-core/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/query-persist-client-core/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/query-persist-client-core/vite.config.ts b/packages/query-persist-client-core/vite.config.ts
index 62ea859ec5..119946da20 100644
--- a/packages/query-persist-client-core/vite.config.ts
+++ b/packages/query-persist-client-core/vite.config.ts
@@ -1,9 +1,14 @@
 import { defineConfig } from 'vitest/config'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/query-sync-storage-persister/root.vite.config.js b/packages/query-sync-storage-persister/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/query-sync-storage-persister/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/query-sync-storage-persister/vite.config.ts b/packages/query-sync-storage-persister/vite.config.ts
index 62ea859ec5..119946da20 100644
--- a/packages/query-sync-storage-persister/vite.config.ts
+++ b/packages/query-sync-storage-persister/vite.config.ts
@@ -1,9 +1,14 @@
 import { defineConfig } from 'vitest/config'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/react-query-devtools/root.vite.config.js b/packages/react-query-devtools/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/react-query-devtools/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/react-query-devtools/vite.config.ts b/packages/react-query-devtools/vite.config.ts
index ed54e60e91..848ae5e882 100644
--- a/packages/react-query-devtools/vite.config.ts
+++ b/packages/react-query-devtools/vite.config.ts
@@ -1,10 +1,15 @@
 import { defineConfig } from 'vitest/config'
 import react from '@vitejs/plugin-react'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [react(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/react-query-next-experimental/root.vite.config.js b/packages/react-query-next-experimental/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/react-query-next-experimental/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/react-query-next-experimental/vite.config.ts b/packages/react-query-next-experimental/vite.config.ts
index ee759ef62f..4a87bc676d 100644
--- a/packages/react-query-next-experimental/vite.config.ts
+++ b/packages/react-query-next-experimental/vite.config.ts
@@ -2,6 +2,11 @@ import { defineConfig } from 'vite'
 import react from '@vitejs/plugin-react'
 import tsconfigPaths from 'vite-tsconfig-paths'
 
+import { dynamicAliases } from './root.vite.config'
+
 export default defineConfig({
   plugins: [react(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
 })
diff --git a/packages/react-query-persist-client/root.vite.config.js b/packages/react-query-persist-client/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/react-query-persist-client/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/react-query-persist-client/vite.config.ts b/packages/react-query-persist-client/vite.config.ts
index ed54e60e91..848ae5e882 100644
--- a/packages/react-query-persist-client/vite.config.ts
+++ b/packages/react-query-persist-client/vite.config.ts
@@ -1,10 +1,15 @@
 import { defineConfig } from 'vitest/config'
 import react from '@vitejs/plugin-react'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [react(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/react-query/root.vite.config.js b/packages/react-query/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/react-query/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/react-query/vite.config.ts b/packages/react-query/vite.config.ts
index 11b91d63ee..4c4570617a 100644
--- a/packages/react-query/vite.config.ts
+++ b/packages/react-query/vite.config.ts
@@ -2,10 +2,14 @@ import { defineConfig } from 'vitest/config'
 import react from '@vitejs/plugin-react'
 import tsconfigPaths from 'vite-tsconfig-paths'
 
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [react(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/solid-query-devtools/root.vite.config.js b/packages/solid-query-devtools/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/solid-query-devtools/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/solid-query-devtools/vite.config.ts b/packages/solid-query-devtools/vite.config.ts
index dd8a644d53..99a13ed566 100644
--- a/packages/solid-query-devtools/vite.config.ts
+++ b/packages/solid-query-devtools/vite.config.ts
@@ -2,6 +2,11 @@ import { defineConfig } from 'vite'
 import solid from 'vite-plugin-solid'
 import tsconfigPaths from 'vite-tsconfig-paths'
 
+import { dynamicAliases } from './root.vite.config'
+
 export default defineConfig({
   plugins: [solid(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
 })
diff --git a/packages/solid-query-persist-client/root.vite.config.js b/packages/solid-query-persist-client/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/solid-query-persist-client/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/solid-query-persist-client/vite.config.ts b/packages/solid-query-persist-client/vite.config.ts
index 49c1d61420..5f86decaa7 100644
--- a/packages/solid-query-persist-client/vite.config.ts
+++ b/packages/solid-query-persist-client/vite.config.ts
@@ -1,10 +1,15 @@
 import { defineConfig } from 'vitest/config'
 import solid from 'vite-plugin-solid'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [solid(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/solid-query/root.vite.config.js b/packages/solid-query/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/solid-query/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/solid-query/vite.config.ts b/packages/solid-query/vite.config.ts
index 49c1d61420..5f86decaa7 100644
--- a/packages/solid-query/vite.config.ts
+++ b/packages/solid-query/vite.config.ts
@@ -1,10 +1,15 @@
 import { defineConfig } from 'vitest/config'
 import solid from 'vite-plugin-solid'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [solid(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/packages/svelte-query-devtools/root.vite.config.js b/packages/svelte-query-devtools/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/svelte-query-devtools/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/svelte-query-devtools/tsconfig.json b/packages/svelte-query-devtools/tsconfig.json
index c86bbd1d16..dcaa397566 100644
--- a/packages/svelte-query-devtools/tsconfig.json
+++ b/packages/svelte-query-devtools/tsconfig.json
@@ -4,8 +4,7 @@
     "outDir": "./dist-ts",
     "rootDir": ".",
     "baseUrl": ".",
-    "module": "NodeNext",
-    "moduleResolution": "NodeNext"
+    "moduleResolution": "Bundler"
   },
   "include": [
     "src/**/*.js",
diff --git a/packages/svelte-query-devtools/vite.config.ts b/packages/svelte-query-devtools/vite.config.ts
index b3cb088497..27b0dacb2b 100644
--- a/packages/svelte-query-devtools/vite.config.ts
+++ b/packages/svelte-query-devtools/vite.config.ts
@@ -2,6 +2,11 @@ import { svelte } from '@sveltejs/vite-plugin-svelte'
 import { defineConfig } from 'vite'
 import tsconfigPaths from 'vite-tsconfig-paths'
 
+import { dynamicAliases } from './root.vite.config'
+
 export default defineConfig({
   plugins: [svelte(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
 })
diff --git a/packages/svelte-query-persist-client/root.vite.config.js b/packages/svelte-query-persist-client/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/svelte-query-persist-client/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/svelte-query-persist-client/tsconfig.json b/packages/svelte-query-persist-client/tsconfig.json
index f16e3e3a74..287b6abd70 100644
--- a/packages/svelte-query-persist-client/tsconfig.json
+++ b/packages/svelte-query-persist-client/tsconfig.json
@@ -4,8 +4,7 @@
     "outDir": "./dist-ts",
     "rootDir": ".",
     "baseUrl": ".",
-    "module": "NodeNext",
-    "moduleResolution": "NodeNext"
+    "moduleResolution": "Bundler"
   },
   "include": [
     "src/**/*.js",
diff --git a/packages/svelte-query-persist-client/vite.config.ts b/packages/svelte-query-persist-client/vite.config.ts
index 415b8b1bd7..54e9cf7efe 100644
--- a/packages/svelte-query-persist-client/vite.config.ts
+++ b/packages/svelte-query-persist-client/vite.config.ts
@@ -2,7 +2,9 @@ import { svelte } from '@sveltejs/vite-plugin-svelte'
 import { defineConfig } from 'vitest/config'
 import { svelteTesting } from '@testing-library/svelte/vite'
 import tsconfigPaths from 'vite-tsconfig-paths'
-import packageJson from './package.json' with { type: 'json' }
+
+import { dynamicAliases } from './root.vite.config'
+import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [
@@ -10,6 +12,9 @@ export default defineConfig({
     svelteTesting(),
     tsconfigPaths({ ignoreConfigErrors: true }),
   ],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './tests',
diff --git a/packages/svelte-query/root.vite.config.js b/packages/svelte-query/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/svelte-query/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/svelte-query/tsconfig.json b/packages/svelte-query/tsconfig.json
index 290c5ec179..8b4a221de0 100644
--- a/packages/svelte-query/tsconfig.json
+++ b/packages/svelte-query/tsconfig.json
@@ -4,8 +4,7 @@
     "outDir": "./dist-ts",
     "rootDir": ".",
     "baseUrl": ".",
-    "module": "NodeNext",
-    "moduleResolution": "NodeNext"
+    "moduleResolution": "Bundler"
   },
   "include": [
     "src/**/*.js",
diff --git a/packages/svelte-query/vite.config.ts b/packages/svelte-query/vite.config.ts
index 415b8b1bd7..54e9cf7efe 100644
--- a/packages/svelte-query/vite.config.ts
+++ b/packages/svelte-query/vite.config.ts
@@ -2,7 +2,9 @@ import { svelte } from '@sveltejs/vite-plugin-svelte'
 import { defineConfig } from 'vitest/config'
 import { svelteTesting } from '@testing-library/svelte/vite'
 import tsconfigPaths from 'vite-tsconfig-paths'
-import packageJson from './package.json' with { type: 'json' }
+
+import { dynamicAliases } from './root.vite.config'
+import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [
@@ -10,6 +12,9 @@ export default defineConfig({
     svelteTesting(),
     tsconfigPaths({ ignoreConfigErrors: true }),
   ],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './tests',
diff --git a/packages/vue-query-devtools/root.vite.config.js b/packages/vue-query-devtools/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/vue-query-devtools/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/vue-query-devtools/vite.config.ts b/packages/vue-query-devtools/vite.config.ts
index 34eefcc301..f36254ba32 100644
--- a/packages/vue-query-devtools/vite.config.ts
+++ b/packages/vue-query-devtools/vite.config.ts
@@ -3,8 +3,13 @@ import vue from '@vitejs/plugin-vue'
 import { tanstackViteConfig } from '@tanstack/config/vite'
 import tsconfigPaths from 'vite-tsconfig-paths'
 
+import { dynamicAliases } from './root.vite.config'
+
 const config = defineConfig({
   plugins: [vue(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
 })
 
 export default mergeConfig(
diff --git a/packages/vue-query/root.vite.config.js b/packages/vue-query/root.vite.config.js
new file mode 120000
index 0000000000..1faec0e874
--- /dev/null
+++ b/packages/vue-query/root.vite.config.js
@@ -0,0 +1 @@
+../../scripts/getViteAliases.js
\ No newline at end of file
diff --git a/packages/vue-query/vite.config.ts b/packages/vue-query/vite.config.ts
index eb527b4c70..620915c6df 100644
--- a/packages/vue-query/vite.config.ts
+++ b/packages/vue-query/vite.config.ts
@@ -1,10 +1,15 @@
 import { defineConfig } from 'vitest/config'
 import vue from '@vitejs/plugin-vue'
 import tsconfigPaths from 'vite-tsconfig-paths'
+
+import { dynamicAliases } from './root.vite.config'
 import packageJson from './package.json'
 
 export default defineConfig({
   plugins: [vue(), tsconfigPaths({ ignoreConfigErrors: true })],
+  resolve: {
+    alias: dynamicAliases,
+  },
   test: {
     name: packageJson.name,
     dir: './src',
diff --git a/scripts/getViteAliases.js b/scripts/getViteAliases.js
new file mode 100644
index 0000000000..9b93db89a0
--- /dev/null
+++ b/scripts/getViteAliases.js
@@ -0,0 +1,17 @@
+// @ts-check
+
+import path from 'node:path'
+import ts from 'typescript'
+
+const tsconfig = ts.readConfigFile(
+  path.resolve(__dirname, '..', 'tsconfig.json'),
+  ts.sys.readFile,
+).config
+
+export const dynamicAliases = Object.entries(
+  tsconfig.compilerOptions.paths || {},
+).reduce((aliases, [key, [value]]) => {
+  const aliasKey = key.replace('/*', '')
+  aliases[aliasKey] = path.resolve(value.replace('/*', ''))
+  return aliases
+}, /** @type {Record<string, string>} */ ({}))