2
0
Просмотр исходного кода

✨ feat(vite): 集成新的vite插件并增强构建配置

- 添加vite-plugin-iframe-communicator插件实现iframe通信功能
- 添加vite-progress-tracking-plugin插件跟踪构建进度
- 重构build配置,指定客户端入口文件为src/client/index.tsx和样式文件src/style.css
- 移除自定义的vite-plugin-compile-progress.js,使用官方npm包替代

🔧 chore(deps): 更新项目依赖

- 添加vite-plugin-iframe-communicator@^0.0.10依赖
- 添加vite-progress-tracking-plugin@^0.0.2依赖
- 安装d8d-iframe-communicator@0.0.10作为iframe通信插件的依赖项
yourname 6 месяцев назад
Родитель
Сommit
1271c9a6ab
3 измененных файлов с 50 добавлено и 3 удалено
  1. 3 1
      package.json
  2. 30 0
      pnpm-lock.yaml
  3. 17 2
      vite.config.ts

+ 3 - 1
package.json

@@ -105,6 +105,8 @@
     "tailwindcss": "^4.1.11",
     "tsx": "^4.20.3",
     "typescript": "~5.8.3",
-    "vite": "^7.0.0"
+    "vite": "^7.0.0",
+    "vite-plugin-iframe-communicator": "^0.0.10",
+    "vite-progress-tracking-plugin": "^0.0.2"
   }
 }

+ 30 - 0
pnpm-lock.yaml

@@ -282,6 +282,12 @@ importers:
       vite:
         specifier: ^7.0.0
         version: 7.0.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)
+      vite-plugin-iframe-communicator:
+        specifier: ^0.0.10
+        version: 0.0.10(vite@7.0.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0))
+      vite-progress-tracking-plugin:
+        specifier: ^0.0.2
+        version: 0.0.2(vite@7.0.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0))
 
 packages:
 
@@ -2035,6 +2041,9 @@ packages:
     resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
     engines: {node: '>=12'}
 
+  d8d-iframe-communicator@0.0.10:
+    resolution: {integrity: sha512-VuBVcXE2ZdW6eSvJ13TBM1nkau6I8RzIcPpHF9XopLiLvx6AylIujVHEFQ4Fl6kGuABnh6VdulMCkC4zr7R0zA==}
+
   date-fns-jalali@4.1.0-0:
     resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==}
 
@@ -3523,6 +3532,16 @@ packages:
   victory-vendor@36.9.2:
     resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==}
 
+  vite-plugin-iframe-communicator@0.0.10:
+    resolution: {integrity: sha512-gvgqH+GueeKAxRuW/oQR7bXjTf0W5svSz2P/6UgeknWrAHczexTZOuAEwhisPVqeOlwomwLwkof0dddQPKHF2A==}
+    peerDependencies:
+      vite: ^7.0.0
+
+  vite-progress-tracking-plugin@0.0.2:
+    resolution: {integrity: sha512-tm5KIwicitTSw+7EVZT3rJ7gLkv7LNloFAxUhJRYCvZ3jQh85l3/GYHHMwl2HbuAaPDYEQOUB2w5IM3fC/a12w==}
+    peerDependencies:
+      vite: ^3.0.0 || ^4.0.0 || ^5.0.0
+
   vite@7.0.5:
     resolution: {integrity: sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -5427,6 +5446,8 @@ snapshots:
 
   d3-timer@3.0.1: {}
 
+  d8d-iframe-communicator@0.0.10: {}
+
   date-fns-jalali@4.1.0-0: {}
 
   date-fns@4.1.0: {}
@@ -7003,6 +7024,15 @@ snapshots:
       d3-time: 3.1.0
       d3-timer: 3.0.1
 
+  vite-plugin-iframe-communicator@0.0.10(vite@7.0.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)):
+    dependencies:
+      d8d-iframe-communicator: 0.0.10
+      vite: 7.0.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)
+
+  vite-progress-tracking-plugin@0.0.2(vite@7.0.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)):
+    dependencies:
+      vite: 7.0.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)
+
   vite@7.0.5(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0):
     dependencies:
       esbuild: 0.25.8

+ 17 - 2
vite.config.ts

@@ -1,8 +1,8 @@
 import { defineConfig } from 'vite'
 import react from '@vitejs/plugin-react-swc'
 import tailwindcss from '@tailwindcss/vite'
-// @ts-ignore
-import { progressTrackingPlugin} from './vite-plugin-compile-progress.js';
+import { progressTrackingPlugin } from 'vite-progress-tracking-plugin';
+import iframeCommunicationPlugin from 'vite-plugin-iframe-communicator';
 
 // https://vite.dev/config/
 export default defineConfig({
@@ -12,6 +12,9 @@ export default defineConfig({
     }),
     tailwindcss(),
     progressTrackingPlugin(),
+    iframeCommunicationPlugin({
+      hostOrigin: '*', // 可信的主页面源
+    })
   ],
   server: {
     allowedHosts:true
@@ -22,4 +25,16 @@ export default defineConfig({
       '@': '/src',
     },
   },
+  // 构建配置
+  build: {
+    // 对于SSR,我们不需要默认的index.html入口
+    // 为客户端构建指定JS入口文件
+    rollupOptions: {
+      input: {
+        // 这里指定你的客户端入口JS文件
+        main: 'src/client/index.tsx',
+        styles: 'src/style.css',
+      },
+    },
+  },
 })