123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import { fileURLToPath, URL } from 'node:url';
- import { ConfigEnv, UserConfig } from 'vite';
- import vue from '@vitejs/plugin-vue';
- import vueJsx from '@vitejs/plugin-vue-jsx';
- import vueDevTools from 'vite-plugin-vue-devtools';
- import compression from 'vite-plugin-compression';
- import { visualizer } from 'rollup-plugin-visualizer';
- import { proxy } from './src/config/proxy';
- import { cool } from '@cool-vue/vite-plugin';
- function toPath(dir: string) {
- return fileURLToPath(new URL(dir, import.meta.url));
- }
- // https://vitejs.dev/config
- export default ({ mode }: ConfigEnv): UserConfig => {
- const isDev = mode === 'development';
- return {
- plugins: [
- vue(),
- compression(),
- vueJsx(),
- // vueDevTools(),
- cool({
- type: 'admin',
- proxy,
- eps: {
- enable: true
- }
- }),
- visualizer({
- open: false,
- gzipSize: true,
- brotliSize: true
- })
- ],
- base: '/',
- server: {
- port: 9000,
- proxy,
- hmr: {
- overlay: true
- }
- },
- css: {
- preprocessorOptions: {
- scss: {
- charset: false
- }
- }
- },
- resolve: {
- alias: {
- '/@': toPath('./src'),
- '/$': toPath('./src/modules'),
- '/#': toPath('./src/plugins'),
- '/~': toPath('./packages')
- }
- },
- esbuild: {
- // drop: isDev ? [] : ["console", "debugger"]
- },
- build: {
- minify: 'esbuild',
- // terserOptions: {
- // compress: {
- // drop_console: true,
- // drop_debugger: true
- // }
- // },
- sourcemap: isDev,
- rollupOptions: {
- output: {
- chunkFileNames: 'static/js/[name]-[hash].js',
- entryFileNames: 'static/js/[name]-[hash].js',
- assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
- manualChunks(id) {
- if (id.includes('node_modules')) {
- if (!['@cool-vue/crud'].find(e => id.includes(e))) {
- if (id.includes('prettier')) {
- return;
- }
- return id
- .toString()
- .split('node_modules/')[1]
- .replace('.pnpm/', '')
- .split('/')[0];
- } else {
- return 'comm';
- }
- }
- }
- }
- }
- }
- };
- };
|