Files
CN_Tool_client/frontend/vite.config.ts
yexb f9c826ffea feat(testReport): 新增台账导入功能并重构报告任务表单
- 新增台账导入面板组件,支持Excel模板下载和批量导入
- 在报告任务表单中集成三步式流程(导入→填写→完成)
- 添加导入结果预览和分组报告状态展示功能
- 扩展API接口支持台账导入和分组报告查询
- 优化表单验证逻辑,移除送资数据必填限制
- 集成日志面板实时显示导入过程状态
- 更新测试报告页面契约验证规则
- 添加监测点数和分组数统计展示
- 实现台账准备状态检查和快照功能
2026-07-10 10:37:52 +08:00

110 lines
3.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineConfig, loadEnv } from 'vite'
import type { ConfigEnv, UserConfig } from 'vite'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import vue from '@vitejs/plugin-vue'
import path from 'path'
// 处理env环境参数读取
import { wrapperEnv } from './build/getEnv'
import { createProxy } from './build/proxy'
// 导入
import vueJsx from '@vitejs/plugin-vue-jsx'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { nodePolyfills } from 'vite-plugin-node-polyfills'
export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
const root = process.cwd()
const env = loadEnv(mode, root)
const viteEnv = wrapperEnv(env)
return {
plugins: [
vue(),
vueJsx(),
// svg图标配置可以使用svg图标
createSvgIconsPlugin({
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
symbolId: 'icon-[dir]-[name]'
}),
AutoImport({
// 自动导入 Vue 相关函数ref, reactive, toRef 等
imports: ['vue', '@vueuse/core', 'pinia', 'vue-router', 'vue-i18n'],
resolvers: [
// 自动导入 Element Plus 相关函数ElMessage, ElMessageBox... (带样式)
ElementPlusResolver({
importStyle: 'sass'
})
],
eslintrc: {
// 是否自动生成 eslint 规则,建议生成之后设置 false
enabled: false,
// 指定自动导入函数 eslint 规则的文件
filepath: './.eslintrc-auto-import.json',
globalsPropValue: true
},
// 是否在 vue 模板中自动导入
vueTemplate: true,
// 指定自动导入函数TS类型声明文件路径 (false:关闭自动生成)
dts: false
// dts: "src/types/auto-imports.d.ts",
}),
Components({
resolvers: [
// 自动导入 Element Plus 组件
ElementPlusResolver({
importStyle: 'sass'
})
],
// 指定自定义组件位置(默认:src/components)
dirs: ['src/components', 'src/**/components'],
// 指定自动导入组件TS类型声明文件路径 (false:关闭自动生成)
dts: false
// dts: "src/types/components.d.ts",
}),
nodePolyfills({
include: ['crypto']
})
],
// 基础配置
base: viteEnv.VITE_PUBLIC_PATH,
root,
publicDir: 'public',
resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
}
},
css: {
preprocessorOptions: {
scss: {
prependData: `@import "@/styles/var.scss";`,
api: 'modern-compiler'
}
}
},
build: {
outDir: 'dist',
assetsDir: 'assets',
assetsInlineLimit: 4096,
cssCodeSplit: true,
sourcemap: false,
minify: 'terser',
terserOptions: {
compress: {
// 生产环境去除console及debug
drop_console: false,
drop_debugger: true
}
}
},
server: {
host: '0.0.0.0',
port: viteEnv.VITE_PORT,
open: viteEnv.VITE_OPEN,
cors: true,
proxy: createProxy(viteEnv.VITE_PROXY)
}
}
})