vite.config.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import path from 'node:path'
  2. import process from 'node:process'
  3. import { loadEnv } from 'vite'
  4. import type { ConfigEnv, UserConfig } from 'vite'
  5. import viewport from 'postcss-mobile-forever'
  6. import autoprefixer from 'autoprefixer'
  7. import { createVitePlugins } from './build/vite'
  8. import { exclude, include } from './build/vite/optimize'
  9. export default ({ mode }: ConfigEnv): UserConfig => {
  10. const root = process.cwd()
  11. const env = loadEnv(mode, root)
  12. return {
  13. base: env.VITE_APP_PUBLIC_PATH,
  14. plugins: createVitePlugins(),
  15. server: {
  16. host: true,
  17. port: 3000,
  18. proxy: {
  19. '/api': {
  20. target: '',
  21. ws: false,
  22. changeOrigin: true,
  23. },
  24. },
  25. },
  26. resolve: {
  27. alias: {
  28. '~@': path.join(__dirname, './src'),
  29. '@': path.join(__dirname, './src'),
  30. '~': path.join(__dirname, './src/assets'),
  31. },
  32. },
  33. css: {
  34. postcss: {
  35. plugins: [
  36. autoprefixer(),
  37. // https://github.com/wswmsword/postcss-mobile-forever
  38. viewport({
  39. appSelector: '#app',
  40. viewportWidth: 375,
  41. maxDisplayWidth: 600,
  42. rootContainingBlockSelectorList: [
  43. 'van-tabbar',
  44. 'van-popup',
  45. ],
  46. }),
  47. ],
  48. },
  49. },
  50. build: {
  51. cssCodeSplit: false,
  52. chunkSizeWarningLimit: 2048,
  53. },
  54. optimizeDeps: { include, exclude },
  55. }
  56. }