Jelajahi Sumber

✨ feat(webpack): 集成iframe通信插件与HTML模板支持
- 安装html-webpack-plugin和webpack-plugin-iframe-communicator依赖
- 配置webpack插件实现iframe通信功能,设置hostOrigin为*
- 添加HTML模板支持,指定src/index.html作为模板

✨ feat(vite): 更新iframe通信插件版本
- 将vite-plugin-iframe-communicator从0.0.7更新至0.0.9版本
- 同步更新依赖的iframe-communicator核心库至0.0.9版本

yourname 4 bulan lalu
induk
melakukan
515b5f99fd
5 mengubah file dengan 52 tambahan dan 8 penghapusan
  1. 13 1
      mini/config/dev.ts
  2. 3 1
      mini/package.json
  3. 24 0
      mini/pnpm-lock.yaml
  4. 1 1
      package.json
  5. 11 5
      pnpm-lock.yaml

+ 13 - 1
mini/config/dev.ts

@@ -1,4 +1,6 @@
 import type { UserConfigExport } from "@tarojs/cli"
+import HtmlWebpackPlugin from 'html-webpack-plugin';
+import iframeCommunicationWebpackPlugin from 'webpack-plugin-iframe-communicator';
 
 export default {
   logger: {
@@ -17,6 +19,16 @@ export default {
         },
       },
       open: false
-    }
+    },
+    webpack:{
+      plugins: [
+        new HtmlWebpackPlugin({
+          template: './src/index.html',
+        }),
+        iframeCommunicationWebpackPlugin({
+          hostOrigin: '*' // Trusted host origin
+        }),
+      ],
+    },
   }
 } satisfies UserConfigExport<'webpack5'>

+ 3 - 1
mini/package.json

@@ -85,6 +85,7 @@
     "eslint-config-taro": "4.1.4",
     "eslint-plugin-react": "^7.34.1",
     "eslint-plugin-react-hooks": "^4.4.0",
+    "html-webpack-plugin": "^5.6.3",
     "husky": "^9.1.7",
     "lint-staged": "^16.1.2",
     "postcss": "^8.4.38",
@@ -95,6 +96,7 @@
     "tsconfig-paths-webpack-plugin": "^4.1.0",
     "typescript": "^5.4.5",
     "weapp-tailwindcss": "^4.2.0",
-    "webpack": "5.91.0"
+    "webpack": "5.91.0",
+    "webpack-plugin-iframe-communicator": "^0.0.9"
   }
 }

+ 24 - 0
mini/pnpm-lock.yaml

@@ -123,6 +123,9 @@ importers:
       eslint-plugin-react-hooks:
         specifier: ^4.4.0
         version: 4.6.2(eslint@8.57.1)
+      html-webpack-plugin:
+        specifier: ^5.6.3
+        version: 5.6.3(webpack@5.91.0(@swc/core@1.3.96))
       husky:
         specifier: ^9.1.7
         version: 9.1.7
@@ -156,6 +159,9 @@ importers:
       webpack:
         specifier: 5.91.0
         version: 5.91.0(@swc/core@1.3.96)
+      webpack-plugin-iframe-communicator:
+        specifier: ^0.0.9
+        version: 0.0.9(webpack@5.91.0(@swc/core@1.3.96))
 
 packages:
 
@@ -3319,6 +3325,9 @@ packages:
   cuint@0.2.2:
     resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==}
 
+  d8d-iframe-communicator@0.0.9:
+    resolution: {integrity: sha512-UUJXmupidPrBZwKdRW2FBEKsWpdK4xPdjQK9BsV96sXLoGzWr5KWKj+TY3UpqQvWgShK/02OMRrbcoUzgHVMBQ==}
+
   dargs@8.1.0:
     resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==}
     engines: {node: '>=12'}
@@ -7193,6 +7202,11 @@ packages:
     resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==}
     engines: {node: '>=10.0.0'}
 
+  webpack-plugin-iframe-communicator@0.0.9:
+    resolution: {integrity: sha512-VH8TaVmLsW7UfL1ctXqxl1+niytt8ULAv/DXGq6UJZVK1uB2RH3FoAkmzhlR9uV4aKjInpwnmA5g1F31h7j7gw==}
+    peerDependencies:
+      webpack: ^5.101.0
+
   webpack-sources@1.4.3:
     resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==}
 
@@ -10990,6 +11004,8 @@ snapshots:
 
   cuint@0.2.2: {}
 
+  d8d-iframe-communicator@0.0.9: {}
+
   dargs@8.1.0: {}
 
   data-urls@5.0.0:
@@ -15343,6 +15359,14 @@ snapshots:
       flat: 5.0.2
       wildcard: 2.0.1
 
+  webpack-plugin-iframe-communicator@0.0.9(webpack@5.91.0(@swc/core@1.3.96)):
+    dependencies:
+      html-webpack-plugin: 5.6.3(webpack@5.91.0(@swc/core@1.3.96))
+      iframe-communicator: d8d-iframe-communicator@0.0.9
+      webpack: 5.91.0(@swc/core@1.3.96)
+    transitivePeerDependencies:
+      - '@rspack/core'
+
   webpack-sources@1.4.3:
     dependencies:
       source-list-map: 2.0.1

+ 1 - 1
package.json

@@ -58,7 +58,7 @@
     "tsx": "^4.20.3",
     "typescript": "~5.8.3",
     "vite": "^7.0.0",
-    "vite-plugin-iframe-communicator": "^0.0.8",
+    "vite-plugin-iframe-communicator": "^0.0.9",
     "vite-progress-tracking-plugin": "^0.0.2"
   }
 }

+ 11 - 5
pnpm-lock.yaml

@@ -139,8 +139,8 @@ importers:
         specifier: ^7.0.0
         version: 7.0.6(@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.7
-        version: 0.0.7(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0))
+        specifier: ^0.0.9
+        version: 0.0.9(vite@7.0.6(@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.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0))
@@ -986,6 +986,9 @@ packages:
   csstype@3.1.3:
     resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
 
+  d8d-iframe-communicator@0.0.9:
+    resolution: {integrity: sha512-UUJXmupidPrBZwKdRW2FBEKsWpdK4xPdjQK9BsV96sXLoGzWr5KWKj+TY3UpqQvWgShK/02OMRrbcoUzgHVMBQ==}
+
   dayjs@1.11.13:
     resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
 
@@ -2044,8 +2047,8 @@ packages:
     resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
     engines: {node: '>= 0.8'}
 
-  vite-plugin-iframe-communicator@0.0.7:
-    resolution: {integrity: sha512-blcgefATJ8N2kCcY4MCD+lALAPJflPQ23Ox09z670ET3+FoBhJMP88gmPcB6I756V4HKDoyxQFe5DGOzU4t9Cw==}
+  vite-plugin-iframe-communicator@0.0.9:
+    resolution: {integrity: sha512-RwlD3Bf9R07s/9rdECdeqR8q7KvCxuSl/1WDwSq955Xk93hCRXr3AEUTZMYlw7YfUpJIDMlQVXnHIDMMKV34LQ==}
     peerDependencies:
       vite: ^7.0.0
 
@@ -2884,6 +2887,8 @@ snapshots:
 
   csstype@3.1.3: {}
 
+  d8d-iframe-communicator@0.0.9: {}
+
   dayjs@1.11.13: {}
 
   debug@2.6.9:
@@ -3961,8 +3966,9 @@ snapshots:
 
   vary@1.1.2: {}
 
-  vite-plugin-iframe-communicator@0.0.7(vite@7.0.6(@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@0.0.9(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)):
     dependencies:
+      iframe-communicator: d8d-iframe-communicator@0.0.9
       vite: 7.0.6(@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.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)):