pwa.ts 748 B

1234567891011121314151617181920212223242526272829303132333435
  1. import { VitePWA } from 'vite-plugin-pwa';
  2. import type { Plugin } from 'vite';
  3. import { ViteEnv } from '../../utils';
  4. export function setupPwaPlugin(
  5. plugins: Plugin[],
  6. env: ViteEnv,
  7. // @ts-ignore
  8. mode: 'development' | 'production'
  9. ) {
  10. const { VITE_USE_PWA } = env;
  11. const pwaPlugin = VitePWA({
  12. manifest: {
  13. name: 'Vben Admin',
  14. short_name: 'vben_admin',
  15. icons: [
  16. {
  17. src: './resource/img/pwa-192x192.png',
  18. sizes: '192x192',
  19. type: 'image/png',
  20. },
  21. {
  22. src: './resource/img/pwa-512x512.png',
  23. sizes: '512x512',
  24. type: 'image/png',
  25. },
  26. ],
  27. },
  28. });
  29. if (VITE_USE_PWA) {
  30. plugins.push(pwaPlugin);
  31. }
  32. return plugins;
  33. }