From 6531b52f50f7dc94ac9136d4eb1d3ecec765516e Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周三, 30 4月 2025 17:13:14 +0800 Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo --- PipeLineLems/web/vite.lib.config.ts | 74 ++++++++++++++++++++++++++++++++---- 1 files changed, 65 insertions(+), 9 deletions(-) diff --git a/PipeLineLems/web/vite.lib.config.ts b/PipeLineLems/web/vite.lib.config.ts index 9da427c..78633a2 100644 --- a/PipeLineLems/web/vite.lib.config.ts +++ b/PipeLineLems/web/vite.lib.config.ts @@ -1,6 +1,6 @@ import path from 'path' import vue from '@vitejs/plugin-vue' -import { defineConfig } from 'vite' +import { defineConfig, loadEnv } from 'vite' import { buildPlugin } from 'vite-plugin-build' import { globSync } from 'glob' import { readFileSync, existsSync } from 'fs' @@ -8,17 +8,48 @@ import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import VitePluginWidgetProvider from './script/plugins/vite-plugin-widget-provider' +import VitePluginDevelopmentFilter from './script/plugins/vite-plugin-development-filter' +import vitePluginImageFilter from './script/plugins/vite-plugin-image-filter' import vueJsx from '@vitejs/plugin-vue-jsx' import { optimizeLodashImports } from '@optimize-lodash/rollup-plugin' import dayjs from 'dayjs' import VueTypeImports from 'vite-plugin-vue-type-imports' -const execa = require('execa') +import svgIcon from 'vite-plugin-svgicon' +import { vitePluginForArco } from '@arco-plugins/vite-vue' +import slash from 'slash' const isWin = process.platform === 'win32' +const isCustom = process.env.NODE_TYPE === 'custom' const argvPath: string = './script/.argv' const isSingleBuild = existsSync(argvPath) +const tag = 'information-debugger' const nodeIndex = process.env.NODE_INDEX const baseBuildFile = './node_modules/.cache/widgets.json' + let getWidgetNames: Array<string> = [] + +const vueBaseConfig = { + template: { + compilerOptions: { + isCustomElement: (id) => [tag].includes(id), + }, + }, +} +let buildWidgets: null | Record<string, any> = null +if (isCustom) { + try { + const isHasBuild = existsSync('.build.local') + if (isHasBuild) { + const fileContent = readFileSync('.build.local').toString('utf8') + if (fileContent) { + buildWidgets = fileContent.split('\n').filter((v) => v) + } + } else { + throw new Error('璇峰厛鍒涘缓 .build.local鏂囦欢') + } + } catch (error) { + console.log(error) + } +} if (isSingleBuild) { const widgetName = readFileSync(argvPath, { encoding: 'utf8' }) @@ -28,15 +59,21 @@ if (nodeIndex) { const widgetNameMap = require(path.resolve(process.cwd(), baseBuildFile)) getWidgetNames = widgetNameMap[nodeIndex] + if (buildWidgets) { + getWidgetNames = getWidgetNames.filter((widgetName) => { + return buildWidgets.includes(widgetName) + }) + } } } const library: any = getWidgetNames.map((name) => { return { - outDir: isWin ? 'C:/Program Files/CMS Editor/host/wwwroot/widgets' : 'dist', + outDir: 'dist', target: 'ES2022', + mode: 'development', rollupOptions: { - external: ['vue', 'sdk'], + external: ['vue', 'sdk', 'vxe-table'], output: { globals: { vue: 'Vue', @@ -54,11 +91,13 @@ }, } }) - //@ts-ignore export default defineConfig(async ({ mode }) => { + const env: any = loadEnv(mode, __dirname) + return { define: { + 'process.env.VITE_STATIC_URL': `"${env?.VITE_STATIC_URL || ''}"`, 'process.env': process.env, 'window.__BUILD_TIME__': `"${dayjs().format('YYYY-MM-DD HH:mm:ss')}"`, }, @@ -70,11 +109,17 @@ }, }, publicDir: false, - plugins: [ - vueJsx(), + svgIcon({ + include: [slash(path.resolve('./src/assets/svg-icon/*.svg'))], + }), + VitePluginDevelopmentFilter({ tag, prodTag: 'information-prod' }), + + vueJsx(vueBaseConfig.template.compilerOptions), vue({ - reactivityTransform: true, + ...vueBaseConfig, + // @ts-ignore + reactivityTransform: path.resolve(__dirname, 'src'), }), VueTypeImports(), VitePluginWidgetProvider(), @@ -93,16 +138,27 @@ }), ], }), + optimizeLodashImports(), + vitePluginForArco({ + style: 'css', + }), ], esbuild: { - drop: mode !== 'development' ? ['debugger', 'console'] : [], + drop: mode !== 'development' ? ['debugger' ] : [], }, css: { preprocessorOptions: { scss: { additionalData: `@use "@/assets/styles/element.scss" as *;`, }, + less: { + modifyVars: { + 'arcoblue-6': '#f85959', + '--primary-6': '#5a84ff', + }, + javascriptEnabled: true, + }, }, }, } -- Gitblit v1.9.3