vite.config.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import path from 'path'
  2. import { ConfigEnv, UserConfig, loadEnv } from 'vite'
  3. import { viteMockServe } from 'vite-plugin-mock'
  4. import createVuePlugin from '@vitejs/plugin-vue'
  5. import vueJsx from '@vitejs/plugin-vue-jsx'
  6. import svgLoader from 'vite-svg-loader'
  7. const CWD = process.cwd()
  8. // https://vitejs.dev/config/
  9. export default ({ mode }: ConfigEnv): UserConfig => {
  10. const { VITE_BASE_URL } = loadEnv(mode, CWD)
  11. return {
  12. base: VITE_BASE_URL,
  13. define: {},
  14. resolve: {
  15. alias: {
  16. '@': path.resolve(__dirname, './src')
  17. }
  18. },
  19. css: {
  20. preprocessorOptions: {
  21. less: {
  22. modifyVars: {
  23. hack: `true; @import (reference) "${path.resolve(
  24. 'src/style/variables.less'
  25. )}";`
  26. },
  27. math: 'strict',
  28. javascriptEnabled: true
  29. }
  30. }
  31. },
  32. plugins: [
  33. createVuePlugin(),
  34. vueJsx(),
  35. viteMockServe({
  36. mockPath: 'mock',
  37. localEnabled: false, // 是否开启本地mock 我们用的远程连接 直接关闭 走代理就OK
  38. prodEnabled: true,
  39. supportTs: true,
  40. logger: true,
  41. injectCode: `
  42. import { setupProdMockServer } from '../mockProdServer';
  43. setupProdMockServer();
  44. `
  45. }),
  46. svgLoader()
  47. ],
  48. server: {
  49. port: 3001,
  50. host: '0.0.0.0',
  51. hmr: true,
  52. proxy: {
  53. '/api': {
  54. target: 'http://localhost:9995',
  55. changeOrigin: true,
  56. rewrite: (path) => path.replace(/^\/api/, '')
  57. }
  58. }
  59. }
  60. }
  61. }