From 47957937a0c9720093220535e587d8e4abe75b69 Mon Sep 17 00:00:00 2001 From: ZLY Date: Sun, 4 Jan 2026 21:25:12 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9E=84=E5=BB=BA=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=B9=B6=E6=B7=BB=E5=8A=A0=E5=AD=90=E5=BA=94=E7=94=A8=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/flow-app/.umirc.ts | 28 ++-- apps/label-app/vite.config.ts | 16 +- package-lock.json | 272 +++++++++++++++++++++++++--------- package.json | 13 +- scripts/copy-micro-apps.js | 44 ++++++ vite.config.ts | 12 ++ 6 files changed, 300 insertions(+), 85 deletions(-) create mode 100644 scripts/copy-micro-apps.js diff --git a/apps/flow-app/.umirc.ts b/apps/flow-app/.umirc.ts index 3a76e1d..99bf171 100644 --- a/apps/flow-app/.umirc.ts +++ b/apps/flow-app/.umirc.ts @@ -10,14 +10,14 @@ export default defineConfig({ alias: { '@parent': path.resolve(__dirname, '../') }, npmClient: 'npm', base: '/flowapp/', - publicPath: '/flowapp/', // 使用相对路径,通过基座代理访问 - runtimePublicPath: false, // 禁用运行时 publicPath - mfsu: false, // 禁用 MFSU 避免模块联邦冲突 + publicPath: '/flowapp/', + runtimePublicPath: false, + mfsu: false, routes, esbuildMinifyIIFE: true, icons: {}, - hash: false, // 开发环境关闭 hash - favicons: ['/flow-app.png'], + hash: true, // 生产环境开启 hash + favicons: ['/flowapp/flow-app.png'], headScripts: [{ src: '/flowapp/iconfont.js', defer: true }], clickToComponent: {}, history: { @@ -27,37 +27,39 @@ export default defineConfig({ '@react-dev-inspector/umi4-plugin', '@umijs/plugins/dist/tailwindcss', ], - jsMinifier: 'none', // Fixed the issue that the page displayed an error after packaging lexical with terser + jsMinifier: 'terser', + jsMinifierOptions: { + compress: { + drop_console: true, + drop_debugger: true, + }, + }, lessLoader: { modifyVars: { hack: `true; @import "~@/less/index.less";`, }, }, - devtool: 'source-map', + devtool: process.env.NODE_ENV === 'production' ? false : 'source-map', copy: [ { from: 'src/conf.json', to: 'dist/conf.json' }, { from: 'node_modules/monaco-editor/min/vs/', to: 'dist/vs/' }, ], proxy: { '/api': { - // target: 'http://192.168.1.6:9380', target: 'http://ngsk.tech:29380', changeOrigin: true, }, '/databuilder/v1': { - // target: 'http://192.168.1.5:9380', - // target: 'http://192.168.131.159:9380', - target: 'http://192.168.8.131:29380', // 中能 + target: 'http://192.168.8.131:29380', changeOrigin: true, pathRewrite: { '^/databuilder': '/' }, }, }, - // 开发服务器配置 writeToDisk: true, chainWebpack(memo, args) { memo.module.rule('markdown').test(/\.md$/).type('asset/source'); - memo.optimization.minimizer('terser').use(TerserPlugin); // Fixed the issue that the page displayed an error after packaging lexical with terser + memo.optimization.minimizer('terser').use(TerserPlugin); return memo; }, diff --git a/apps/label-app/vite.config.ts b/apps/label-app/vite.config.ts index e50b3af..8bcf3d6 100644 --- a/apps/label-app/vite.config.ts +++ b/apps/label-app/vite.config.ts @@ -11,7 +11,7 @@ console.log("isOnline", isOnline); // https://vitejs.dev/config/ export default defineConfig({ - base: "/labelapp", + base: "/labelapp/", publicDir: resolve(__dirname, "public"), envDir: resolve(__dirname, "env"), server: { @@ -53,12 +53,24 @@ export default defineConfig({ }, build: { + outDir: "dist", target: "es2015", + // micro-app 需要的配置 + cssCodeSplit: false, + minify: "terser", terserOptions: { compress: { - drop_console: false, + drop_console: true, drop_debugger: true, }, }, + rollupOptions: { + output: { + // 确保资源路径正确 + assetFileNames: "assets/[name]-[hash][extname]", + chunkFileNames: "assets/[name]-[hash].js", + entryFileNames: "assets/[name]-[hash].js", + }, + }, }, }); diff --git a/package-lock.json b/package-lock.json index b23c096..c4392f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,8 @@ "cron-parser": "^5.4.0", "element-plus": "^2.10.2", "highlight.js": "^11.11.1", + "markdown-it": "^14.1.0", + "markdown-it-katex": "^2.0.3", "pinia": "^2.1.7", "vue": "^3.4.3", "vue-router": "^4.2.5", @@ -24,10 +26,11 @@ "concurrently": "^8.2.2", "less": "^4.2.0", "sass": "^1.79.3", + "terser": "^5.27.0", "typescript": "^5.3.3", "unplugin-auto-import": "^20.3.0", "vite": "^6.0.0", - "vue-tsc": "^1.8.27" + "vue-tsc": "^2.0.0" } }, "node_modules/@babel/helper-string-parser": { @@ -603,6 +606,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -1308,34 +1322,32 @@ } }, "node_modules/@volar/language-core": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", - "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "version": "2.4.15", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.4.15.tgz", + "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "1.11.1" + "@volar/source-map": "2.4.15" } }, "node_modules/@volar/source-map": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", - "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "version": "2.4.15", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.4.15.tgz", + "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", "dev": true, - "license": "MIT", - "dependencies": { - "muggle-string": "^0.3.1" - } + "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", - "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "version": "2.4.15", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-2.4.15.tgz", + "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "1.11.1", - "path-browserify": "^1.0.1" + "@volar/language-core": "2.4.15", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" } }, "node_modules/@vue/compiler-core": { @@ -1388,6 +1400,17 @@ "@vue/shared": "3.5.26" } }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, "node_modules/@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", @@ -1395,21 +1418,20 @@ "license": "MIT" }, "node_modules/@vue/language-core": { - "version": "1.8.27", - "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", - "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "version": "2.2.12", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.2.12.tgz", + "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "~1.11.1", - "@volar/source-map": "~1.11.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/shared": "^3.3.0", - "computeds": "^0.0.1", + "@volar/language-core": "2.4.15", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", "minimatch": "^9.0.3", - "muggle-string": "^0.3.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" }, "peerDependencies": { "typescript": "*" @@ -1519,6 +1541,13 @@ "node": ">=0.4.0" } }, + "node_modules/alien-signals": { + "version": "1.0.13", + "resolved": "https://registry.npmmirror.com/alien-signals/-/alien-signals-1.0.13.tgz", + "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "dev": true, + "license": "MIT" + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1545,6 +1574,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, "node_modules/async-validator": { "version": "4.2.5", "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", @@ -1599,6 +1634,13 @@ "node": ">=8" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -1705,10 +1747,10 @@ "node": ">= 0.8" } }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "license": "MIT" }, @@ -2330,6 +2372,18 @@ "dev": true, "license": "MIT" }, + "node_modules/katex": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/katex/-/katex-0.6.0.tgz", + "integrity": "sha512-rS4mY3SvHYg5LtQV6RBcK0if7ur6plyEukAOV+jGGPqFImuzu8fHL6M752iBmRGoUyF0bhZbAPoezehn7xYksA==", + "license": "MIT", + "dependencies": { + "match-at": "^0.1.0" + }, + "bin": { + "katex": "cli.js" + } + }, "node_modules/less": { "version": "4.5.1", "resolved": "https://registry.npmmirror.com/less/-/less-4.5.1.tgz", @@ -2358,6 +2412,15 @@ "source-map": "~0.6.0" } }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/local-pkg": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.2.tgz", @@ -2432,6 +2495,49 @@ "node": ">=6" } }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-katex": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/markdown-it-katex/-/markdown-it-katex-2.0.3.tgz", + "integrity": "sha512-nUkkMtRWeg7OpdflamflE/Ho/pWl64Lk9wNBKOmaj33XkQdumhXAIYhI0WO03GeiycPCsxbmX536V5NEXpC3Ng==", + "license": "MIT", + "dependencies": { + "katex": "^0.6.0" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/match-at": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/match-at/-/match-at-0.1.1.tgz", + "integrity": "sha512-h4Yd392z9mST+dzc+yjuybOGFNOZjmXIPKWjxBd1Bb23r4SmDOsk2NYCU2BMUBGbSpZqwVsZYNq26QS3xfaT3Q==" + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -2441,6 +2547,12 @@ "node": ">= 0.4" } }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", @@ -2546,9 +2658,9 @@ } }, "node_modules/muggle-string": { - "version": "0.3.1", - "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", - "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", "dev": true, "license": "MIT" }, @@ -2733,6 +2845,15 @@ "license": "MIT", "optional": true }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmmirror.com/quansync/-/quansync-0.2.11.tgz", @@ -2900,7 +3021,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", - "optional": true, "engines": { "node": ">=0.10.0" } @@ -2914,6 +3034,17 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/spawn-command": { "version": "0.0.2", "resolved": "https://registry.npmmirror.com/spawn-command/-/spawn-command-0.0.2.tgz", @@ -2977,6 +3108,25 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -3070,6 +3220,12 @@ "node": ">=14.17" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, "node_modules/ufo": { "version": "1.6.1", "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.6.1.tgz", @@ -3337,6 +3493,13 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, "node_modules/vue": { "version": "3.5.26", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.26.tgz", @@ -3399,46 +3562,21 @@ "vue": "^3.5.0" } }, - "node_modules/vue-template-compiler": { - "version": "2.7.16", - "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", - "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "node_modules/vue-tsc": { - "version": "1.8.27", - "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", - "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "version": "2.2.12", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-2.2.12.tgz", + "integrity": "sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==", "dev": true, "license": "MIT", "dependencies": { - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", - "semver": "^7.5.4" + "@volar/typescript": "2.4.15", + "@vue/language-core": "2.2.12" }, "bin": { "vue-tsc": "bin/vue-tsc.js" }, "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/vue-tsc/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "typescript": ">=5.0.0" } }, "node_modules/vue3-cron-plus-picker": { diff --git a/package.json b/package.json index 992d492..3fd2c63 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,11 @@ "dev:label-app": "cd apps/label-app && npm run start", "dev:flow-app": "cd apps/flow-app && npm run dev", "dev:all": "concurrently \"npm run dev:label-app\" \"npm run dev:flow-app\" \"npm run dev\" ", - "build": "vue-tsc && vite build", + "build": "vite build", + "build:label-app": "cd apps/label-app && npm run build", + "build:flow-app": "cd apps/flow-app && npm run build", + "build:all": "npm run build:label-app && npm run build:flow-app && npm run build && npm run postbuild", + "postbuild": "node scripts/copy-micro-apps.js", "preview": "vite preview" }, "dependencies": { @@ -21,16 +25,19 @@ "pinia": "^2.1.7", "vue": "^3.4.3", "vue-router": "^4.2.5", - "vue3-cron-plus-picker": "^1.0.2" + "vue3-cron-plus-picker": "^1.0.2", + "markdown-it": "^14.1.0", + "markdown-it-katex": "^2.0.3" }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.3", "concurrently": "^8.2.2", "less": "^4.2.0", "sass": "^1.79.3", + "terser": "^5.27.0", "typescript": "^5.3.3", "unplugin-auto-import": "^20.3.0", "vite": "^6.0.0", - "vue-tsc": "^1.8.27" + "vue-tsc": "^2.0.0" } } diff --git a/scripts/copy-micro-apps.js b/scripts/copy-micro-apps.js new file mode 100644 index 0000000..ab63dad --- /dev/null +++ b/scripts/copy-micro-apps.js @@ -0,0 +1,44 @@ +import { cpSync, existsSync, mkdirSync } from 'fs'; +import { resolve, dirname } from 'path'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const rootDir = resolve(__dirname, '..'); +const distDir = resolve(rootDir, 'dist'); + +// 子应用配置 +const microApps = [ + { + name: 'label-app', + source: resolve(rootDir, 'apps/label-app/dist'), + target: resolve(distDir, 'labelapp'), + }, + { + name: 'flow-app', + source: resolve(rootDir, 'apps/flow-app/dist'), + target: resolve(distDir, 'flowapp'), + }, +]; + +console.log('开始复制子应用到基座 dist 目录...\n'); + +// 确保 dist 目录存在 +if (!existsSync(distDir)) { + mkdirSync(distDir, { recursive: true }); +} + +// 复制每个子应用 +for (const app of microApps) { + if (existsSync(app.source)) { + console.log(`复制 ${app.name}: ${app.source} -> ${app.target}`); + cpSync(app.source, app.target, { recursive: true }); + console.log(`✓ ${app.name} 复制完成\n`); + } else { + console.warn(`⚠ ${app.name} 的 dist 目录不存在: ${app.source}`); + console.warn(` 请先运行 npm run build:${app.name}\n`); + } +} + +console.log('所有子应用复制完成!'); diff --git a/vite.config.ts b/vite.config.ts index 28911cf..d9f106e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -31,6 +31,18 @@ export default defineConfig({ '@': resolve(__dirname, 'src'), }, }, + build: { + outDir: 'dist', + assetsDir: 'assets', + // 生产环境移除 console + minify: 'terser', + terserOptions: { + compress: { + drop_console: true, + drop_debugger: true, + }, + }, + }, server: { port: 3000, host: '0.0.0.0',