Browse Source

minor: 验证功能-qiankun

tuonian 2 months ago
parent
commit
e3af8f430b

+ 0 - 0
frontend/dist/assets/bg-df7c9fe1.jpg → frontend/dist/assets/bg-BL8qTlvt.jpg


+ 0 - 0
frontend/dist/assets/ic_home-b1ed3048.svg → frontend/dist/assets/ic_home-CEHAik-C.svg


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/assets/index-6a157cc6.css


File diff suppressed because it is too large
+ 1 - 0
frontend/dist/assets/index-C4bOgrFY.js


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/assets/index-Du21pBjA.css


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/assets/index-bfcad9eb.js


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/assets/index-legacy-C9bzCwDK.js


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/assets/polyfills-legacy-onNG-a16.js


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/cdn/ace-builds-1.23.0-legacy.js


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/cdn/ace-builds-1.23.0.js


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/cdn/react-all-18.2.0-legacy.js


File diff suppressed because it is too large
+ 1 - 1
frontend/dist/cdn/react-all-18.2.0.js


File diff suppressed because it is too large
+ 0 - 0
frontend/dist/cdn/rich-legacy.js


File diff suppressed because it is too large
+ 0 - 2
frontend/dist/cdn/rich.js


+ 55 - 46
frontend/dist/index.html

@@ -1,48 +1,57 @@
-<!DOCTYPE html><html lang="en"><head>
-    <meta charset="UTF-8">
-    <link rel="icon" type="image/svg+xml" href="/nginx-ui/vite.svg">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>NginxUI</title>
-    <script type="application/javascript" src="/nginx-ui/config.js"></script>
-    <script crossorigin="">import('/nginx-ui/assets/index-bfcad9eb.js').finally(() => {
-            
-    const qiankunLifeCycle = window.moudleQiankunAppLifeCycles && window.moudleQiankunAppLifeCycles['nginx-ui'];
-    if (qiankunLifeCycle) {
-      window.proxy.vitemount((props) => qiankunLifeCycle.mount(props));
-      window.proxy.viteunmount((props) => qiankunLifeCycle.unmount(props));
-      window.proxy.vitebootstrap(() => qiankunLifeCycle.bootstrap());
-      window.proxy.viteupdate((props) => qiankunLifeCycle.update(props));
-    }
-  
-          })</script>
-    <link rel="modulepreload" crossorigin="" href="/nginx-ui/cdn/ace-builds-1.23.0.js">
-    <link rel="modulepreload" crossorigin="" href="/nginx-ui/cdn/react-all-18.2.0.js">
-    <link rel="stylesheet" href="/nginx-ui/assets/index-6a157cc6.css">
-  </head>
-  <body>
-    <div id="nginx_ui_root"></div>
-    
-  
-
+<!DOCTYPE html>
+<html lang="en">
+  <head>
 <script>
-  const createDeffer = (hookName) => {
-    const d = new Promise((resolve, reject) => {
-      window.proxy && (window.proxy[`vite${hookName}`] = resolve)
-    })
-    return props => d.then(fn => fn(props));
-  }
-  const bootstrap = createDeffer('bootstrap');
-  const mount = createDeffer('mount');
-  const unmount = createDeffer('unmount');
-  const update = createDeffer('update');
+(function (){
+const global = (0, eval)('window')
+const name = 'nginx-ui'
+
+    const proxy = global.proxy
+    let publicPath = (proxy && proxy.__INJECTED_PUBLIC_PATH_BY_QIANKUN__) || ''
+    publicPath = publicPath.slice(0, publicPath.length - 1)
+    global.legacyQiankun = global.legacyQiankun || {}
+    global.legacyQiankun[name] = global.legacyQiankun[name] || {}
+    Object.assign(global.legacyQiankun[name], {
+      proxy,
+      publicPath,
+      '__INJECTED_PUBLIC_PATH_BY_QIANKUN__': proxy && proxy.__INJECTED_PUBLIC_PATH_BY_QIANKUN__,
+      '__POWERED_BY_QIANKUN__': proxy && proxy.__INJECTED_PUBLIC_PATH_BY_QIANKUN__,
+    })})()
+</script>
+    <meta charset="UTF-8" />
+    <link rel="icon" type="image/svg+xml" href="/nginx-ui/vite.svg" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>NginxUI</title>
+    <script type="application/javascript" src="/nginx-ui/config.js"></script>
+    <!-- replace by vite-plugin-legacy-qiankun <script type="module" crossorigin src="/nginx-ui/assets/index-C4bOgrFY.js"></script> -->
+    <link rel="modulepreload" crossorigin href="/nginx-ui/cdn/ace-builds-1.23.0.js">
+    <link rel="modulepreload" crossorigin href="/nginx-ui/cdn/react-all-18.2.0.js">
+    <link rel="stylesheet" crossorigin href="/nginx-ui/assets/index-Du21pBjA.css">
+    <!-- replace by vite-plugin-legacy-qiankun <script type="module">import.meta.url;import("_").catch(()=>1);(async function*(){})().next();if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script> -->
+    <!-- replace by vite-plugin-legacy-qiankun <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script> -->
+  </head>
+  <body>
+    <div id="nginx_ui_root"></div>

+    <script >!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
+    <script  crossorigin id="vite-legacy-polyfill" src="/nginx-ui/assets/polyfills-legacy-onNG-a16.js"></script>
+    <script>
+(function (){
+const global = (0, eval)('window')
+const name = 'nginx-ui'
+global.legacyQiankun[name].dynamicImport = System.import(!global.legacyQiankun[name].__POWERED_BY_QIANKUN__ ? '/nginx-ui/assets/index-legacy-C9bzCwDK.js' : new URL('/nginx-ui/assets/index-legacy-C9bzCwDK.js', global.legacyQiankun[name].__POWERED_BY_QIANKUN__).toString())})()
+</script>
+  <script>
+(function (){
+const global = (0, eval)('window')
+const name = 'nginx-ui'
 
-  ;(global => {
-    global.qiankunName = 'nginx-ui';
-    global['nginx-ui'] = {
-      bootstrap,
-      mount,
-      unmount,
-      update
-    };
-  })(window);
-</script></body></html>
+    const app = global.legacyQiankun[name]
+    if (!app.proxy) return
+    window[name] = {
+      bootstrap: (...args) => app.dynamicImport.then(() => app.lifecyle.bootstrap(...args)),
+      mount: (...args) => app.dynamicImport.then(() => app.lifecyle.mount(...args)),
+      unmount: (...args) => app.dynamicImport.then(() => app.lifecyle.unmount(...args)),
+      update: (...args) => app.dynamicImport.then(() => app.lifecyle.update(...args)),
+    }})()
+</script></body>
+</html>

+ 1 - 0
frontend/package.json

@@ -46,6 +46,7 @@
     "react-router-dom": "^6.14.0",
     "redux-persist": "^6.0.0",
     "sass": "^1.80.3",
+    "terser": "^5.37.0",
     "vite-plugin-cdn-import": "^1.0.1",
     "vite-plugin-legacy-qiankun": "^0.0.12"
   },

+ 0 - 4
frontend/src/components/app/index.less

@@ -1,4 +0,0 @@
-.micro-app-container{
-  width: 100%;
-  height: 100%;
-}

+ 0 - 48
frontend/src/components/app/index.tsx

@@ -1,48 +0,0 @@
-
-import {useEffect, useRef} from "react";
-import {startApp,startOptions } from "wujie";
-import {Settings} from "../../api/settings.ts";
-import './index.less'
-
-type IProps = {
-    app: Settings.Route
-    config: Partial<startOptions>
-}
-
-export const MicroApp = ({app, config}: IProps) => {
-
-    const domRef = useRef<HTMLDivElement>(null);
-    const destroyRef = useRef<any>()
-
-    const handleStartApp = () => {
-        if (!domRef.current) {
-            return
-        }
-        console.log('startApp', app.path)
-        startApp({
-            name: app.id,
-            url: app.path,
-            alive: true,
-            ...config,
-            el: domRef.current,
-        }).then(func=>{
-            destroyRef.current = func
-        }).catch(err=>{
-            console.log('startApp error ',err)
-        })
-    }
-
-    useEffect(() => {
-        handleStartApp()
-    }, [domRef.current]);
-
-    useEffect(() => {
-        console.log('MicroApp mounted')
-        return () => {
-            console.log('MicroApp unmounted')
-        }
-    }, []);
-
-    return <div id={'micro_app_'+app.id} className="micro-app-container" ref={domRef} />;
-
-}

+ 2 - 1
frontend/tsconfig.json

@@ -19,7 +19,8 @@
     "noUnusedLocals": true,
     "noUnusedParameters": true,
     "noFallthroughCasesInSwitch": true,
-    "allowSyntheticDefaultImports": true
+    "allowSyntheticDefaultImports": true,
+    "noImplicitAny": true
   },
   "include": ["src","docs"],
   "references": [{ "path": "./tsconfig.node.json" }]

+ 37 - 1
frontend/yarn.lock

@@ -1304,6 +1304,14 @@
   resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
   integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
 
+"@jridgewell/source-map@^0.3.3":
+  version "0.3.6"
+  resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a"
+  integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==
+  dependencies:
+    "@jridgewell/gen-mapping" "^0.3.5"
+    "@jridgewell/trace-mapping" "^0.3.25"
+
 "@jridgewell/sourcemap-codec@1.4.14":
   version "1.4.14"
   resolved "https://mirrors.tencent.com/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
@@ -2720,6 +2728,11 @@ browserslist@^4.24.0, browserslist@^4.24.2:
     node-releases "^2.0.19"
     update-browserslist-db "^1.1.1"
 
+buffer-from@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+  integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
 buffer@^6.0.3:
   version "6.0.3"
   resolved "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
@@ -3050,6 +3063,11 @@ commander@2.17.x:
   resolved "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
   integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
 
+commander@^2.20.0:
+  version "2.20.3"
+  resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+  integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
 commander@~2.19.0:
   version "2.19.0"
   resolved "https://registry.npmmirror.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
@@ -7069,7 +7087,15 @@ source-map-js@^1.0.2:
   resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
   integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
 
-source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
+source-map-support@~0.5.20:
+  version "0.5.21"
+  resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
   version "0.6.1"
   resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
@@ -7272,6 +7298,16 @@ tar@^6.1.11, tar@^6.1.13, tar@^6.1.15, tar@^6.1.2:
     mkdirp "^1.0.3"
     yallist "^4.0.0"
 
+terser@^5.37.0:
+  version "5.37.0"
+  resolved "https://registry.npmmirror.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3"
+  integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==
+  dependencies:
+    "@jridgewell/source-map" "^0.3.3"
+    acorn "^8.8.2"
+    commander "^2.20.0"
+    source-map-support "~0.5.20"
+
 text-table@^0.2.0, text-table@~0.2.0:
   version "0.2.0"
   resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"

Some files were not shown because too many files changed in this diff