|
|
|
import { fileURLToPath, URL } from 'node:url'
|
|
|
|
import { resolve } from 'path'
|
|
|
|
import { defineConfig, loadEnv } 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 IconsResolver from 'unplugin-icons/resolver'
|
|
|
|
import Icons from 'unplugin-icons/vite'
|
|
|
|
import { config } from 'dotenv'
|
|
|
|
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
|
|
const env = loadEnv(mode, process.cwd())
|
|
|
|
const envFile = mode === 'production' ? '.env.production' : '.env.development'
|
|
|
|
config({ path: resolve(__dirname, envFile) })
|
|
|
|
config({ path: resolve(__dirname, '.env') })
|
|
|
|
|
|
|
|
return {
|
|
|
|
plugins: [
|
|
|
|
vue(),
|
|
|
|
vueJsx(),
|
|
|
|
AutoImport({
|
|
|
|
imports: ['vue'],
|
|
|
|
resolvers: [
|
|
|
|
ElementPlusResolver(),
|
|
|
|
// 自动导入图标组件
|
|
|
|
IconsResolver({
|
|
|
|
prefix: 'Icon',
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
Components({
|
|
|
|
resolvers: [
|
|
|
|
ElementPlusResolver(),
|
|
|
|
// 自动注册图标组件
|
|
|
|
IconsResolver({
|
|
|
|
enabledCollections: ['ep'],
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
Icons({
|
|
|
|
autoInstall: true,
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
publicDir: resolve(__dirname, './public'),
|
|
|
|
css: {
|
|
|
|
preprocessorOptions: {
|
|
|
|
scss: {
|
|
|
|
additionalData: `@use "./src/styles/variables.scss" as *;`,
|
|
|
|
javascriptEnabled: true,
|
|
|
|
silenceDeprecations: ['legacy-js-api'],
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
resolve: {
|
|
|
|
alias: {
|
|
|
|
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
|
|
|
public: fileURLToPath(new URL('./public', import.meta.url)),
|
|
|
|
utils: fileURLToPath(new URL('./src/utils', import.meta.url)),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
optimizeDeps: {
|
|
|
|
exclude: ['lua.vm.js'],
|
|
|
|
include: ['@vueuse/core'],
|
|
|
|
},
|
|
|
|
server: {
|
|
|
|
port: 4002,
|
|
|
|
host: '0.0.0.0',
|
|
|
|
proxy: {
|
|
|
|
'/remote': {
|
|
|
|
target: env.VITE_BASE_URL,
|
|
|
|
changeOrigin: true,
|
|
|
|
ws: true,
|
|
|
|
rewrite: path => path.replace(/^\/remote/, ''),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
})
|