vite.config.web.mjs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { defineConfig, loadEnv } from 'vite'
  2. import { resolve } from 'path'
  3. import dayjs from 'dayjs'
  4. import vue from '@vitejs/plugin-vue'
  5. import vueJsx from '@vitejs/plugin-vue-jsx'
  6. import { wrapperEnv } from './factory/utils'
  7. import { createProxy } from './factory/vite/proxy'
  8. import { createVitePlugins } from './factory/vite/plugin'
  9. import pkg from './package.json'
  10. import { OUTPUT_DIR } from './factory/constant'
  11. function pathResolve(dir) {
  12. return resolve(process.cwd(), '.', dir)
  13. }
  14. const { dependencies, devDependencies, name, version } = pkg
  15. export default defineConfig(({ command, mode }) => {
  16. const root = process.cwd()
  17. const env = loadEnv(mode, root)
  18. const viteEnv = wrapperEnv(env)
  19. const BUILD_NUMBER = process.env.VITE_APP_BUILD_NUMBER || 'dev'
  20. const __APP_INFO__ = {
  21. pkg: { dependencies, devDependencies, name, version },
  22. buildVersion: BUILD_NUMBER,
  23. lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss')
  24. }
  25. const { VITE_DROP_CONSOLE, VITE_PORT, VITE_PROXY, VITE_PUBLIC_PATH } = viteEnv
  26. const isBuild = command === 'build'
  27. return {
  28. root: pathResolve('src/renderer'),
  29. base: VITE_PUBLIC_PATH,
  30. resolve: {
  31. alias: {
  32. '@': resolve('src/renderer/src'),
  33. '#': resolve('src/renderer/types')
  34. }
  35. },
  36. server: {
  37. host: true,
  38. port: VITE_PORT,
  39. proxy: createProxy(VITE_PROXY)
  40. },
  41. define: {
  42. // 在构建时,将环境变量注入到 window 对象上
  43. // 'window.__APP_ENV__': JSON.stringify(env),
  44. // setting vue-i18-next
  45. // Suppress warning
  46. __INTLIFY_PROD_DEVTOOLS__: false,
  47. __APP_INFO__: JSON.stringify(__APP_INFO__)
  48. },
  49. esbuild: {
  50. pure: VITE_DROP_CONSOLE ? ['console.log'] : []
  51. },
  52. plugins: [vue(), vueJsx(), ...createVitePlugins(viteEnv, isBuild)],
  53. build: {
  54. outDir: resolve(process.cwd(), OUTPUT_DIR)
  55. }
  56. }
  57. })