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,
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
}
|
|||
|
|
})
|