vite.mobile.config.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { readFileSync } from 'node:fs'
  2. import { resolve } from 'node:path'
  3. import { defineConfig } from 'vite'
  4. import react from '@vitejs/plugin-react'
  5. const appVersion = JSON.parse(readFileSync(resolve(__dirname, 'mobile-app', 'package.json'), 'utf8')).version
  6. const isOEM = process.env.VITE_OEM_VERSION === 'true'
  7. export default defineConfig({
  8. root: resolve(__dirname, 'mobile-app'),
  9. base: './',
  10. define: {
  11. __OEM_VERSION__: JSON.stringify(isOEM),
  12. __APP_VERSION__: JSON.stringify(appVersion)
  13. },
  14. resolve: {
  15. alias: {
  16. '@renderer': resolve(__dirname, 'src/renderer/src'),
  17. '@printer': resolve(__dirname, 'src/renderer/printer'),
  18. '@shared': resolve(__dirname, 'src/shared')
  19. }
  20. },
  21. build: {
  22. outDir: resolve(__dirname, 'mobile-app/www'),
  23. emptyOutDir: true,
  24. rollupOptions: {
  25. input: {
  26. main: resolve(__dirname, 'mobile-app/index.html'),
  27. printer: resolve(__dirname, 'mobile-app/printer.html')
  28. },
  29. output: {
  30. entryFileNames: 'assets/mobile-capacitor-[hash].js',
  31. chunkFileNames: 'assets/[name]-[hash].js',
  32. assetFileNames: 'assets/[name]-[hash][extname]',
  33. manualChunks: {
  34. react: ['react', 'react-dom', 'react-router-dom'],
  35. antd: ['antd', '@ant-design/icons', '@ant-design/cssinjs', '@ant-design/pro-components'],
  36. charts: ['@antv/g2plot'],
  37. motion: ['framer-motion']
  38. }
  39. }
  40. }
  41. },
  42. plugins: [react()]
  43. })