diff options
Diffstat (limited to 'vite.config.js')
-rw-r--r-- | vite.config.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 00000000..47edf477 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,53 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; +import svgr from 'vite-plugin-svgr'; +import { VitePWA } from 'vite-plugin-pwa'; + +/* eslint-disable no-template-curly-in-string */ +export default defineConfig(() => ({ + server: { + port: 3000, + proxy: { + '/api/socket': 'ws://localhost:8082', + '/api': 'http://localhost:8082', + }, + }, + build: { + outDir: 'build', + }, + plugins: [ + svgr(), + react(), + VitePWA({ + includeAssets: ['favicon.ico', 'apple-touch-icon-180x180.png'], + workbox: { + navigateFallbackDenylist: [/^\/api/], + maximumFileSizeToCacheInBytes: 4000000, + globPatterns: ['**/*.{js,css,html,woff,woff2,mp3}'], + }, + manifest: { + short_name: '${title}', + name: '${description}', + theme_color: '${colorPrimary}', + icons: [ + { + src: 'pwa-64x64.png', + sizes: '64x64', + type: 'image/png', + }, + { + src: 'pwa-192x192.png', + sizes: '192x192', + type: 'image/png', + }, + { + src: 'pwa-512x512.png', + sizes: '512x512', + type: 'image/png', + purpose: 'any maskable', + }, + ], + }, + }), + ], +})); |