pwa.ts 713 B

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