policeSecurity/policeManagement/vite.config.ts

85 lines
2.8 KiB
TypeScript
Raw Normal View History

2024-08-30 18:07:30 +08:00
import { defineConfig, loadEnv } from 'vite'
2024-08-29 17:06:00 +08:00
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite';
2024-08-30 18:07:30 +08:00
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
2024-08-29 17:06:00 +08:00
import * as path from "node:path";
import vueJsx from '@vitejs/plugin-vue-jsx'
const pathSrc = path.resolve(__dirname, 'src');
// https://vitejs.dev/config/
2024-08-30 18:07:30 +08:00
export default defineConfig(({ mode }) => {
2024-08-29 17:06:00 +08:00
const env: Record<string, string> = loadEnv(mode, process.cwd(), '')
return {
define: {
__APP_ENV: JSON.stringify(env)
},
base: '/',
plugins: [
vue(),
vueJsx(),
Components({
resolvers: [
2024-08-30 18:07:30 +08:00
AntDesignVueResolver({ importStyle: false })
2024-08-29 17:06:00 +08:00
]
})
],
resolve: {
alias: {
'@': pathSrc,
2024-08-30 18:07:30 +08:00
// '@': '/src'
2024-08-29 17:06:00 +08:00
}
},
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: 'dist',
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`;
}
}
}
},
}
})