Teamlinker/code/client/vite.config.ts
2023-11-06 22:15:31 +08:00

57 lines
1.8 KiB
TypeScript

import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import * as fs from "fs";
import * as path from "path";
import viteCompression from 'vite-plugin-compression'
import {createSvgIconsPlugin} from "vite-plugin-svg-icons";
export default defineConfig({
resolve: {
alias: {
"@": path.join(__dirname, "src")
}
},
plugins: [
vue(),
viteCompression({
threshold: 102400
}),
createSvgIconsPlugin({
iconDirs: [path.join(__dirname, "./src/assert/custom")],
symbolId: '[name]'
})
],
server: {
host: "0.0.0.0",
https: {
key: fs.readFileSync(path.join(__dirname, './certs/key.pem')),
cert: fs.readFileSync(path.join(__dirname, './certs/cert.pem'))
},
port: 3000,
hmr: true,
open: false, //自动打开
base: "./ ", //生产环境路径
proxy: { // 本地开发环境通过代理实现跨域,生产环境使用 nginx 转发
// 正则表达式写法
'^/api': {
secure: false,
target: 'https://localhost:14000/api', // 后端服务实际地址
changeOrigin: true, //开启代理
rewrite: (path) => path.replace(/^\/api/, '')
},
'^/file': {
secure: false,
target: 'https://localhost:14000/file', // 后端服务实际地址
changeOrigin: true, //开启代理
rewrite: (path) => path.replace(/^\/file/, '')
},
"/socket.io": {
target: "https://localhost:14000",
secure: false,
ws: true,
changeOrigin: true
}
}
},
})