vite.config.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import vue from '@vitejs/plugin-vue'
  2. import path from 'path'
  3. import { CURRENT_CONFIG } from './src/api/http/config';
  4. import { ConfigEnv, defineConfig, UserConfigExport } from 'vite'
  5. import { viteVConsole } from 'vite-plugin-vconsole'
  6. export default ({ command, mode }: ConfigEnv): UserConfigExport => defineConfig({
  7. base: '/',
  8. css: {
  9. preprocessorOptions: {
  10. scss: {
  11. additionalData: '@import "./src/styles/variables";'
  12. },
  13. }
  14. },
  15. resolve: {
  16. alias: [
  17. {
  18. find: '/@',
  19. replacement: path.resolve(__dirname, './src'),
  20. }
  21. ]
  22. },
  23. server: {
  24. // 监听所有地址
  25. host: '0.0.0.0',
  26. // 自定义端口号
  27. port: 3010,
  28. // 自动打开浏览器
  29. open: true,
  30. // 开启热更新
  31. hmr: true,
  32. // 若端口被占用,自动尝试下一个可用端口
  33. strictPort: false,
  34. // 代理规则
  35. proxy: {
  36. '/api': {
  37. // 开启跨域
  38. changeOrigin: true,
  39. // 转发地址
  40. target: CURRENT_CONFIG.apiURL,
  41. // 路径重写
  42. rewrite: (path) => path.replace(/^\/api/, ''),
  43. }
  44. }
  45. },
  46. build: {
  47. outDir: 'dist',// 指定打包文件根目录
  48. sourcemap: false,// 构建后不生成源代码
  49. write: true,// 构建的文件写入磁盘
  50. chunkSizeWarningLimit: 10240,// 触发警告的chunk大小10M
  51. },
  52. esbuild: {
  53. drop: mode === 'production' ? ['console', 'debugger'] : [],
  54. },
  55. plugins: [
  56. vue(),
  57. viteVConsole({
  58. entry: path.resolve(__dirname, './src/main.ts'), // 入口文件
  59. localEnabled: command === 'serve', // serve开发环境下
  60. // enabled: command !== 'serve' || mode === 'test', // 打包环境下/发布测试包,
  61. config: { // vconsole 配置项
  62. maxLogNumber: 1000,
  63. theme: 'light'
  64. }
  65. }),
  66. ],
  67. })