easynode/web/vite.config.js
2024-10-20 16:22:56 +08:00

96 lines
2.0 KiB
JavaScript

import { fileURLToPath, URL } from 'url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
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 viteCompression from 'vite-plugin-compression'
import { codeInspectorPlugin } from 'code-inspector-plugin'
const serviceURI = 'http://localhost:8082/'
const serviceApiPrefix = '/api/v1'
// https://vitejs.dev/config/
export default defineConfig({
server: {
host: '0.0.0.0',
port: 18090,
// strictPort: true,
cors: true,
proxy: {
[serviceApiPrefix]: {
target: serviceURI
// rewrite: (p) => p.replace(/^\/api/, '')
}
}
// 解决内网穿透一直重定向的问题
// hmr: {
// protocol: 'ws',
// host: 'localhost'
// }
},
build: {
// outDir: '../server/app/static',
emptyOutDir: true
},
define: {
'process.env': {
serviceURI,
serviceApiPrefix
}
},
plugins: [
vue(),
vueJsx(),
AutoImport({
resolvers: [
ElementPlusResolver(),
]
}),
Components({
resolvers: [
ElementPlusResolver(),
]
}),
viteCompression({
algorithm: 'gzip',
deleteOriginFile: false
}),
codeInspectorPlugin({
bundler: 'vite'
}),
],
css: {
preprocessorOptions: {
scss: {
additionalData: '@use "@/assets/scss/element/index.scss" as *;'
}
},
postcss: {
plugins: [
]
}
},
resolve: {
alias: {
'@': fileURLToPath(new URL(
'./src',
import.meta.url
)),
'@views': fileURLToPath(new URL(
'./src/views',
import.meta.url
)),
'@utils': fileURLToPath(new URL(
'./src/utils',
import.meta.url
)),
'@store': fileURLToPath(new URL(
'./src/store',
import.meta.url
))
}
}
})