58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import path from 'path'
|
||
import type { PluginOption } from 'vite'
|
||
import { defineConfig, loadEnv } from 'vite'
|
||
import vue from '@vitejs/plugin-vue'
|
||
import { VitePWA } from 'vite-plugin-pwa'
|
||
import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
|
||
|
||
function setupPlugins(env: ImportMetaEnv): PluginOption[] {
|
||
return [
|
||
vue(),
|
||
env.VITE_GLOB_APP_PWA === 'true' && VitePWA({
|
||
injectRegister: 'auto',
|
||
manifest: {
|
||
name: 'ChatMaster',
|
||
short_name: 'chatMaster',
|
||
icons: [],
|
||
},
|
||
}),
|
||
//启用插件
|
||
createSvgIconsPlugin({
|
||
// 指定图标文件夹,绝对路径(NODE代码)
|
||
iconDirs: [path.resolve(process.cwd(), "src/assets/svgs")],
|
||
})
|
||
]
|
||
}
|
||
|
||
export default defineConfig((env) => {
|
||
const viteEnv = loadEnv(env.mode, process.cwd()) as unknown as ImportMetaEnv
|
||
|
||
return {
|
||
resolve: {
|
||
alias: {
|
||
'@': path.resolve(process.cwd(), 'src'),
|
||
},
|
||
},
|
||
plugins: setupPlugins(viteEnv),
|
||
server: {
|
||
host: '0.0.0.0',
|
||
port: 1002,
|
||
open: false,
|
||
proxy: {
|
||
'/api': {
|
||
target: viteEnv.VITE_APP_API_BASE_URL,
|
||
changeOrigin: true, // 允许跨域
|
||
rewrite: path => path.replace('/api/', '/'),
|
||
},
|
||
},
|
||
},
|
||
build: {
|
||
reportCompressedSize: false,
|
||
sourcemap: false,
|
||
commonjsOptions: {
|
||
ignoreTryCatch: false,
|
||
},
|
||
},
|
||
}
|
||
})
|