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