pediatrics-admin/vite.config.ts
2025-07-03 18:15:16 +08:00

90 lines
2.4 KiB
TypeScript

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import { viteMockServe } from 'vite-plugin-mock'
// 引入 fs 模块
// import fs from 'fs'
// const fs = require('fs');
// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
const env = loadEnv(mode, process.cwd())
return {
plugins: [
vue(),
AutoImport({
resolvers: [
ElementPlusResolver(),
IconsResolver({
prefix: 'Icon',
}),
],
}),
Components({
resolvers: [
ElementPlusResolver({importStyle:"sass"}),
IconsResolver({
enabledCollections: ['ep'],
}),
],
}),
Icons({
autoInstall: true,
}),
createSvgIconsPlugin({
// Specify the icon folder to be cached
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/default'), path.resolve(process.cwd(), 'src/assets/icons/bosch')],
// Specify symbolId format
symbolId: 'icon-[dir]-[name]',
}),
viteMockServe({
localEnabled: command === 'serve',
}),
],
resolve: {
alias: {
'@': path.resolve('./src'), // 相对路径别名配置,使用 @ 代替 src
},
},
css: { //配置全局scss
preprocessorOptions: {
scss: {
quietDeps: true,
logger: {
warn: () => {}
},
javascriptEnabled: true,
// additionalData: `@use "@/styles/element/index.scss" as *;`,
},
},
},
// 代理跨域
server: {
// https: {
// key: fs.readFileSync('./cert.key'), // 证书密钥路径
// cert: fs.readFileSync('./cert.crt') // 证书文件路径
// },
host: '0.0.0.0',
proxy: {
[env.VITE_APP_BASE_API]: {
target: env.VITE_SERVE,
changeOrigin: true,
rewrite: (path) =>
path.replace(new RegExp(`^${env.VITE_APP_BASE_API}`), ''),
},
},
},
}
})