Files
FlightsAPI/vite.config.ts
T
2026-07-01 19:50:34 +10:00

57 lines
2.0 KiB
TypeScript

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'),
},
},
});