import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' import { OUTPUT_DIR } from './build/constant' import viteCompression from 'vite-plugin-compression' function pathResolve(dir: string) { return resolve(process.cwd(), '.', dir) } export default defineConfig({ base: './', resolve: { alias: [ { find: /\/#\//, replacement: pathResolve('types') + '/' }, { find: '@', replacement: pathResolve('src') + '/' } ], dedupe: ['vue'] }, css: { preprocessorOptions: { scss: { javascriptEnabled: true, additionalData: `@import "src/styles/common/style.scss";` } } }, plugins: [ vue(), viteCompression({ verbose: true, disable: false, threshold: 10240, algorithm: 'gzip', ext: '.gz' }) ], build: { target: 'es2015', outDir: OUTPUT_DIR, terserOptions: { compress: { keep_infinity: true, drop_console: true, drop_debugger: true } }, rollupOptions: { output: { chunkFileNames: 'static/js/[name]-[hash].js', entryFileNames: 'static/js/[name]-[hash].js', assetFileNames: 'static/[ext]/[name]-[hash].[ext]' } }, brotliSize: false, chunkSizeWarningLimit: 2000 } })