policeSecurity/securityManagement/vite.config.ts

84 lines
2.8 KiB
TypeScript
Raw Normal View History

2024-11-15 12:23:16 +08:00
import {defineConfig, loadEnv} from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite';
import {AntDesignVueResolver} from 'unplugin-vue-components/resolvers';
import * as path from "node:path";
import vueJsx from '@vitejs/plugin-vue-jsx'
const pathSrc = path.resolve(__dirname, 'src');
// https://vitejs.dev/config/
export default defineConfig(({mode}) => {
const env: Record<string, string> = loadEnv(mode, process.cwd(), '')
return {
define: {
__APP_ENV: JSON.stringify(env)
},
base: '/securityManagement/',
plugins: [
vue(),
vueJsx(),
Components({
resolvers: [
AntDesignVueResolver({importStyle: false})
]
})
],
resolve: {
alias: {
'@': pathSrc,
}
},
server: {
host: '0.0.0.0',
port: parseInt(env['VITE_APP_PORT']),
open: false,
proxy: {
[env["VITE_APP_BASE_API"]]: {
target: env["VITE_APP_PROXY_URL"],
changeOrigin: true,
secure: false,
rewrite: path => path.replace(RegExp(`^${env['VITE_APP_BASE_API']}`), '')
}
}
},
build: {
outDir: 'securityManagement',
target: 'modules',
chunkSizeWarningLimit: 1500,
minify: 'terser',
terserOptions: {
compress: {
//生产环境时移除console
drop_console: env['VITE_DROP_CONSOLE'] as unknown as boolean,
drop_debugger: env['VITE_DROP_CONSOLE'] as unknown as boolean,
},
format: {
//删除注释
comments: false
}
},
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes('node_modules')) {
return id
.toString()
.split('node_modules/')[1]
.split('/')[0]
.toString();
}
},
chunkFileNames(chunkInfo) {
const facadeModuleId = chunkInfo.facadeModuleId ? chunkInfo.facadeModuleId.split('/') : [];
const fileName =
facadeModuleId[facadeModuleId.length - 2] || '[name]';
return `js/${fileName}/[name].[hash].js`;
}
}
}
},
}
})