-
+
diff --git a/packages/vite/src/app/pages/home.vue b/packages/vite/src/app/pages/home.vue
new file mode 100644
index 00000000..46ac10ed
--- /dev/null
+++ b/packages/vite/src/app/pages/home.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.label }}
+
+
+ {{ row.value }}
+
+
+
+
+
+
+
diff --git a/packages/vite/src/app/pages/index.vue b/packages/vite/src/app/pages/index.vue
index ce65592a..4ec001bf 100644
--- a/packages/vite/src/app/pages/index.vue
+++ b/packages/vite/src/app/pages/index.vue
@@ -1,7 +1,9 @@
+
+
-
-
- Vite DevTools
-
-
+
diff --git a/packages/vite/src/app/plugins/floating-vue.ts b/packages/vite/src/app/plugins/floating-vue.ts
new file mode 100644
index 00000000..f7e80c47
--- /dev/null
+++ b/packages/vite/src/app/plugins/floating-vue.ts
@@ -0,0 +1,8 @@
+import { defineNuxtPlugin } from '#app/nuxt'
+import FloatingVue from 'floating-vue'
+
+export default defineNuxtPlugin((nuxtApp) => {
+ nuxtApp.vueApp.use(FloatingVue, {
+ overflowPadding: 20,
+ })
+})
diff --git a/packages/vite/src/node/rpc/functions/hi.ts b/packages/vite/src/node/rpc/functions/hi.ts
deleted file mode 100644
index 4b1df426..00000000
--- a/packages/vite/src/node/rpc/functions/hi.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { defineRpcFunction } from '@vitejs/devtools-kit'
-
-export const viteHi = defineRpcFunction({
- name: 'vite:hi',
- type: 'query',
- setup: (context) => {
- return {
- handler: async () => {
- return {
- message: 'Hi from server.',
- cwd: context.cwd,
- timestamp: Date.now(),
- }
- },
- }
- },
-})
diff --git a/packages/vite/src/node/rpc/functions/vite-env-info.ts b/packages/vite/src/node/rpc/functions/vite-env-info.ts
new file mode 100644
index 00000000..c7edd722
--- /dev/null
+++ b/packages/vite/src/node/rpc/functions/vite-env-info.ts
@@ -0,0 +1,33 @@
+import { defineRpcFunction } from '@vitejs/devtools-kit'
+
+export const viteEnvInfo = defineRpcFunction({
+ name: 'vite:env-info',
+ type: 'query',
+ setup: () => {
+ return {
+ handler: async () => {
+ const { default: { helpers } } = await import('envinfo')
+
+ const [cpu, os, memory, node, npm, pnpm, yarn] = await Promise.all([
+ helpers.getCPUInfo().then(([,res]) => res),
+ helpers.getOSInfo().then(([,res]) => res),
+ helpers.getMemoryInfo().then(([,res]) => res),
+ helpers.getNodeInfo().then(([,res]) => res),
+ helpers.getnpmInfo().then(([,res]) => res),
+ helpers.getpnpmInfo().then(([,res]) => res),
+ helpers.getYarnInfo().then(([,res]) => res),
+ ])
+
+ return {
+ cpu,
+ os,
+ memory,
+ node,
+ npm,
+ pnpm,
+ yarn,
+ }
+ },
+ }
+ },
+})
diff --git a/packages/vite/src/node/rpc/functions/vite-meta-info.ts b/packages/vite/src/node/rpc/functions/vite-meta-info.ts
new file mode 100644
index 00000000..dcba5d21
--- /dev/null
+++ b/packages/vite/src/node/rpc/functions/vite-meta-info.ts
@@ -0,0 +1,19 @@
+import { defineRpcFunction } from '@vitejs/devtools-kit'
+
+export const viteMetaInfo = defineRpcFunction({
+ name: 'vite:meta-info',
+ type: 'query',
+ setup: (context) => {
+ return {
+ handler: async () => {
+ const { root, base, plugins } = context.viteConfig
+
+ return {
+ root,
+ base,
+ plugins: plugins.map(p => p.name),
+ }
+ },
+ }
+ },
+})
diff --git a/packages/vite/src/node/rpc/index.ts b/packages/vite/src/node/rpc/index.ts
index 7f08436b..b68ece44 100644
--- a/packages/vite/src/node/rpc/index.ts
+++ b/packages/vite/src/node/rpc/index.ts
@@ -1,9 +1,11 @@
import type { RpcDefinitionsToFunctions } from '@vitejs/devtools-kit'
-import { viteHi } from './functions/hi'
+import { viteEnvInfo } from './functions/vite-env-info'
+import { viteMetaInfo } from './functions/vite-meta-info'
import '@vitejs/devtools-kit'
export const rpcFunctions = [
- viteHi,
+ viteMetaInfo,
+ viteEnvInfo,
] as const
export type ServerFunctions = RpcDefinitionsToFunctions
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 75675bc8..30b1e887 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -52,6 +52,9 @@ catalogs:
diff:
specifier: ^8.0.3
version: 8.0.3
+ envinfo:
+ specifier: ^7.21.0
+ version: 7.21.0
get-port-please:
specifier: ^3.2.0
version: 3.2.0
@@ -272,6 +275,9 @@ catalogs:
'@iconify-json/logos':
specifier: ^1.2.10
version: 1.2.10
+ '@iconify-json/material-icon-theme':
+ specifier: ^1.2.54
+ version: 1.2.54
'@iconify-json/octicon':
specifier: ^1.2.21
version: 1.2.21
@@ -287,6 +293,9 @@ catalogs:
'@iconify-json/svg-spinners':
specifier: ^1.2.4
version: 1.2.4
+ '@iconify-json/system-uicons':
+ specifier: ^1.2.4
+ version: 1.2.4
'@iconify-json/tabler':
specifier: ^1.2.31
version: 1.2.31
@@ -336,6 +345,9 @@ catalogs:
'@types/diff':
specifier: ^8.0.0
version: 8.0.0
+ '@types/envinfo':
+ specifier: ^7.8.4
+ version: 7.8.4
'@types/react':
specifier: ^19.2.14
version: 19.2.14
@@ -401,6 +413,9 @@ importers:
'@iconify-json/logos':
specifier: catalog:icons
version: 1.2.10
+ '@iconify-json/material-icon-theme':
+ specifier: catalog:icons
+ version: 1.2.54
'@iconify-json/octicon':
specifier: catalog:icons
version: 1.2.21
@@ -416,6 +431,9 @@ importers:
'@iconify-json/svg-spinners':
specifier: catalog:icons
version: 1.2.4
+ '@iconify-json/system-uicons':
+ specifier: catalog:icons
+ version: 1.2.4
'@iconify-json/tabler':
specifier: catalog:icons
version: 1.2.31
@@ -907,6 +925,9 @@ importers:
birpc:
specifier: catalog:deps
version: 4.0.0
+ envinfo:
+ specifier: catalog:deps
+ version: 7.21.0
get-port-please:
specifier: catalog:deps
version: 3.2.0
@@ -929,6 +950,9 @@ importers:
specifier: catalog:deps
version: 8.19.0
devDependencies:
+ '@types/envinfo':
+ specifier: catalog:types
+ version: 7.8.4
'@unocss/nuxt':
specifier: catalog:build
version: 66.6.6(magicast@0.5.2)(vite@8.0.0-beta.18(@types/node@25.0.3)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.104.1(esbuild@0.27.3))
@@ -1547,6 +1571,9 @@ packages:
'@iconify-json/logos@1.2.10':
resolution: {integrity: sha512-qxaXKJ6fu8jzTMPQdHtNxlfx6tBQ0jXRbHZIYy5Ilh8Lx9US9FsAdzZWUR8MXV8PnWTKGDFO4ZZee9VwerCyMA==}
+ '@iconify-json/material-icon-theme@1.2.54':
+ resolution: {integrity: sha512-m5GpLcWICmtaLntgaSbQBWYzzScp2wQIBj0I/9ak2xUFXWxQUws42mZGWRA5W5e1Nn7DsyyMYVBgisnnCQSlhA==}
+
'@iconify-json/octicon@1.2.21':
resolution: {integrity: sha512-iMW8IT7suHRKVcHnci9wHKY79LU9mQ4rCAcVgKQQsI5SHoBi0r6z0leOXrI/oRCGJDiJDy9cLqweF3C5wSnm0A==}
@@ -1556,15 +1583,15 @@ packages:
'@iconify-json/ri@1.2.10':
resolution: {integrity: sha512-WWMhoncVVM+Xmu9T5fgu2lhYRrKTEWhKk3Com0KiM111EeEsRLiASjpsFKnC/SrB6covhUp95r2mH8tGxhgd5Q==}
- '@iconify-json/simple-icons@1.2.72':
- resolution: {integrity: sha512-wkcixntHvaCoqPqerGrNFcHQ3Yx1ux4ZkhscCDK0DEHpP62XCH+cxq1HTsRjbUiQl/M9K8bj03HF6Wgn5iE2rQ==}
-
'@iconify-json/simple-icons@1.2.73':
resolution: {integrity: sha512-nQZTwul4c2zBqH/aLP4zMOiElj93T6HawbrP+sFQKpxmBdS5x1duCK3cAnkj6dntHz84EYkzaQRM83V2pj4qxA==}
'@iconify-json/svg-spinners@1.2.4':
resolution: {integrity: sha512-ayn0pogFPwJA1WFZpDnoq9/hjDxN+keeCMyThaX4d3gSJ3y0mdKUxIA/b1YXWGtY9wVtZmxwcvOIeEieG4+JNg==}
+ '@iconify-json/system-uicons@1.2.4':
+ resolution: {integrity: sha512-9WB9dmEm+TRCXI5Ml2IY8zQAPZES8euKxY0VOaf8D6E6ZaEr7ztO6DChMlGg7qWECs3m3FjFUqNgBx8ZpB+djw==}
+
'@iconify-json/tabler@1.2.31':
resolution: {integrity: sha512-Jfcw5TpGhfKKWyz1dGk7e79zIgDmpMKNYL0bjt17sURBPifAxowQcWAzcEhuiWU7FGXUM2NT6UhvACFZp7Hnjw==}
@@ -3074,6 +3101,9 @@ packages:
resolution: {integrity: sha512-o7jqJM04gfaYrdCecCVMbZhNdG6T1MHg/oQoRFdERLV+4d+V7FijhiEAbFu0Usww84Yijk9yH58U4Jk4HbtzZw==}
deprecated: This is a stub types definition. diff provides its own type definitions, so you do not need this installed.
+ '@types/envinfo@7.8.4':
+ resolution: {integrity: sha512-K5WaRgSlqjc408IyPbxOFnz7rVG9E8ELhj7XR3Ncui15EgeyIXTcCfmwrRnU4uEOCJQhzZRAQurYznEEc1dD2g==}
+
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
@@ -4650,6 +4680,11 @@ packages:
resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
engines: {node: '>=0.12'}
+ envinfo@7.21.0:
+ resolution: {integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==}
+ engines: {node: '>=4'}
+ hasBin: true
+
error-ex@1.3.4:
resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
@@ -8438,6 +8473,10 @@ snapshots:
dependencies:
'@iconify/types': 2.0.0
+ '@iconify-json/material-icon-theme@1.2.54':
+ dependencies:
+ '@iconify/types': 2.0.0
+
'@iconify-json/octicon@1.2.21':
dependencies:
'@iconify/types': 2.0.0
@@ -8450,15 +8489,15 @@ snapshots:
dependencies:
'@iconify/types': 2.0.0
- '@iconify-json/simple-icons@1.2.72':
+ '@iconify-json/simple-icons@1.2.73':
dependencies:
'@iconify/types': 2.0.0
- '@iconify-json/simple-icons@1.2.73':
+ '@iconify-json/svg-spinners@1.2.4':
dependencies:
'@iconify/types': 2.0.0
- '@iconify-json/svg-spinners@1.2.4':
+ '@iconify-json/system-uicons@1.2.4':
dependencies:
'@iconify/types': 2.0.0
@@ -10063,6 +10102,8 @@ snapshots:
dependencies:
diff: 8.0.3
+ '@types/envinfo@7.8.4': {}
+
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
@@ -11852,6 +11893,8 @@ snapshots:
entities@7.0.1: {}
+ envinfo@7.21.0: {}
+
error-ex@1.3.4:
dependencies:
is-arrayish: 0.2.1
@@ -15437,7 +15480,7 @@ snapshots:
'@docsearch/css': 4.5.4
'@docsearch/js': 4.5.4
'@docsearch/sidepanel-js': 4.5.4
- '@iconify-json/simple-icons': 1.2.72
+ '@iconify-json/simple-icons': 1.2.73
'@shikijs/core': 3.22.0
'@shikijs/transformers': 3.21.0
'@shikijs/types': 3.22.0
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 1cca2e09..c6ad43b6 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -37,6 +37,7 @@ catalogs:
birpc: ^4.0.0
cac: ^7.0.0
diff: ^8.0.3
+ envinfo: ^7.21.0
get-port-please: ^3.2.0
h3: ^1.15.6
immer: ^11.1.4
@@ -115,11 +116,13 @@ catalogs:
'@iconify-json/fluent': ^1.2.40
'@iconify-json/fluent-emoji-flat': ^1.2.5
'@iconify-json/logos': ^1.2.10
+ '@iconify-json/material-icon-theme': ^1.2.54
'@iconify-json/octicon': ^1.2.21
'@iconify-json/ph': ^1.2.2
'@iconify-json/ri': ^1.2.10
'@iconify-json/simple-icons': ^1.2.73
'@iconify-json/svg-spinners': ^1.2.4
+ '@iconify-json/system-uicons': ^1.2.4
'@iconify-json/tabler': ^1.2.31
inlined:
'@antfu/utils': ^9.3.0
@@ -143,6 +146,7 @@ catalogs:
'@types/d3': ^7.4.3
'@types/d3-hierarchy': ^3.1.7
'@types/diff': ^8.0.0
+ '@types/envinfo': ^7.8.4
'@types/react': ^19.2.14
'@types/react-dom': ^19.2.3
'@types/split2': ^4.2.3