import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import vue from '@vitejs/plugin-vue'; import path from 'path'; import vuetify from "vite-plugin-vuetify"; import { VitePWA } from 'vite-plugin-pwa'; export default defineConfig({ plugins: [ laravel({ input: 'resources/js/app.ts', refresh: true, }), vue({ template: { transformAssetUrls: { base: null, includeAbsolute: false, }, }, }), vuetify({ autoImport: true }), VitePWA({ registerType: 'autoUpdate', devOptions: { enabled: true, }, includeAssets: ['favicon.ico', 'apple-touch-icon-180.png'], manifest: { name: 'FlightsGoneBy', short_name: 'FlightsGoneBy', description: 'Track and log your flight history', start_url: '/', display: 'standalone', background_color: '#020d29', theme_color: '#020d29', icons: [ { src: '/img/app_icons/icon-192.png', sizes: '192x192', type: 'image/png' }, { src: '/img/app_icons/icon-512.png', sizes: '512x512', type: 'image/png' }, { src: '/img/app_icons/icon-192-maskable.png', sizes: '192x192', type: 'image/png', purpose: 'maskable' }, { src: '/img/app_icons/icon-512-maskable.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' }, ], }, workbox: { // Avoid caching Inertia/API responses by default — just static assets globPatterns: ['**/*.{js,css,html,svg,png,ico}'], navigateFallbackDenylist: [/^\/api/, /^\/admin/], }, }), ], resolve: { alias: { '@': path.resolve(__dirname, 'resources/js'), }, }, });