heart_cabin_bg/vite.config.js
2023-08-23 16:06:42 +08:00

102 lines
2.3 KiB
JavaScript

import path from 'path';
import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import legacy from '@vitejs/plugin-legacy';
import pages from 'vite-plugin-pages';
import ElementPlus from 'unplugin-element-plus/vite';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
const pathSrc = path.resolve(__dirname, 'src');
// https://vitejs.dev/config/
export default ({ mode }) => {
const env = {
// ...process.env,
...loadEnv(mode, process.cwd())
};
return defineConfig({
base: env.VITE_BASE,
build: {
target: 'es2015',
minify: 'terser',
terserOptions: {
compress: {
// keep_infinity: true,
// drop_console: VITE_DROP_CONSOLE,
}
},
brotliSize: false,
chunkSizeWarningLimit: 2000
},
optimizeDeps: {
include: [],
exclude: ['vue-demi']
},
esbuild: {},
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "~/styles/element/index.scss" as *;`,
},
less: {
javascriptEnabled: true
}
}
},
preview: {
proxy: {
'/uploads': {
target: env.VITE_PROXY_UPLOADS,
changeOrigin: true,
rewrite: path => path.replace(/^\/uploads/, '')
},
'/api': {
target: env.VITE_PROXY_API,
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '')
}
}
},
server: {
proxy: {
'/uploads': {
target: env.VITE_PROXY_UPLOADS,
changeOrigin: true,
rewrite: path => path.replace(/^\/uploads/, '')
},
'/api': {
target: env.VITE_PROXY_API,
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '')
}
}
},
resolve: {
alias: {
'~/': `${pathSrc}/`
}
},
plugins: [
vue(),
vueJsx(),
ElementPlus({
useSource: true
}),
AutoImport({
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [ElementPlusResolver()]
}),
legacy(),
pages({
exclude: ['**/components/**']
})
]
});
};