vite.config.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import { resolve } from 'path'
  4. import { OUTPUT_DIR, brotliSize, chunkSizeWarningLimit, terserOptions, rollupOptions } from './build/constant'
  5. import viteCompression from 'vite-plugin-compression'
  6. function pathResolve(dir: string) {
  7. return resolve(process.cwd(), '.', dir)
  8. }
  9. export default defineConfig({
  10. base: './',
  11. resolve: {
  12. alias: [
  13. {
  14. find: /\/#\//,
  15. replacement: pathResolve('types') + '/'
  16. },
  17. {
  18. find: '@',
  19. replacement: pathResolve('src') + '/'
  20. }
  21. ],
  22. dedupe: ['vue']
  23. },
  24. css: {
  25. preprocessorOptions: {
  26. scss: {
  27. javascriptEnabled: true,
  28. additionalData: `@import "src/styles/common/style.scss";`
  29. }
  30. }
  31. },
  32. plugins: [
  33. vue(),
  34. viteCompression({
  35. verbose: true,
  36. disable: false,
  37. threshold: 10240,
  38. algorithm: 'gzip',
  39. ext: '.gz'
  40. })
  41. ],
  42. build: {
  43. target: 'es2015',
  44. outDir: OUTPUT_DIR,
  45. terserOptions: terserOptions,
  46. rollupOptions: rollupOptions,
  47. brotliSize: brotliSize,
  48. chunkSizeWarningLimit: chunkSizeWarningLimit
  49. }
  50. })