vite.config.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { resolve } from 'path'
  2. import { UserConfigExport, ConfigEnv } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import vueJsx from '@vitejs/plugin-vue-jsx'
  5. import { loadEnv } from './build/utils'
  6. import { createProxy } from './build/proxy'
  7. import { viteMockServe } from 'vite-plugin-mock'
  8. const pathResolve = (dir: string): any => {
  9. return resolve(__dirname, '.', dir)
  10. }
  11. const { VITE_PORT, VITE_PUBLIC_PATH, VITE_PROXY, VITE_OPEN } = loadEnv()
  12. const alias: Record<string, string> = {
  13. '/@': pathResolve('src'),
  14. 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js' //解决警告You are running the esm-bundler build of vue-i18n. It is recommended to configure your bundler to explicitly replace feature flag globals with boolean literals to get proper tree-shaking in the final bundle.
  15. }
  16. const root: string = process.cwd()
  17. export default ({ command }: ConfigEnv): UserConfigExport => {
  18. let prodMock = true
  19. return {
  20. /**
  21. * 基本公共路径
  22. * @default '/'
  23. */
  24. base: process.env.NODE_ENV === "production" ? "/manages/" : VITE_PUBLIC_PATH,
  25. root,
  26. resolve: {
  27. alias
  28. },
  29. // 服务端渲染
  30. server: {
  31. // 是否开启 https
  32. https: false,
  33. /**
  34. * 端口号
  35. * @default 3000
  36. */
  37. port: VITE_PORT,
  38. // 本地跨域代理
  39. proxy: createProxy(VITE_PROXY)
  40. },
  41. plugins: [
  42. vue(),
  43. vueJsx(),
  44. viteMockServe({
  45. mockPath: 'mock',
  46. localEnabled: command === 'serve',
  47. prodEnabled: command !== 'serve' && prodMock,
  48. injectCode: `
  49. import { setupProdMockServer } from './mockProdServer';
  50. setupProdMockServer();
  51. `,
  52. logger: true,
  53. }),
  54. ],
  55. build: {
  56. brotliSize: false,
  57. // 消除打包大小超过500kb警告
  58. chunkSizeWarningLimit: 2000
  59. },
  60. define: {
  61. __INTLIFY_PROD_DEVTOOLS__: false
  62. }
  63. }
  64. }