62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import inertia from '@inertiajs/vite';
|
|
import { wayfinder } from '@laravel/vite-plugin-wayfinder';
|
|
import tailwindcss from '@tailwindcss/vite';
|
|
import vue from '@vitejs/plugin-vue';
|
|
import laravel from 'laravel-vite-plugin';
|
|
import { bunny } from 'laravel-vite-plugin/fonts';
|
|
import { defineConfig } from 'vite';
|
|
|
|
import { VitePWA } from 'vite-plugin-pwa';
|
|
|
|
export default defineConfig({
|
|
resolve: {
|
|
dedupe: ['@laravel/echo-vue'],
|
|
},
|
|
plugins: [
|
|
laravel({
|
|
input: ['resources/css/app.css', 'resources/js/app.ts'],
|
|
refresh: true,
|
|
fonts: [
|
|
bunny('Instrument Sans', {
|
|
weights: [400, 500, 600],
|
|
}),
|
|
],
|
|
}),
|
|
inertia(),
|
|
tailwindcss(),
|
|
vue({
|
|
template: {
|
|
transformAssetUrls: {
|
|
base: null,
|
|
includeAbsolute: false,
|
|
},
|
|
},
|
|
}),
|
|
wayfinder({
|
|
formVariants: true,
|
|
}),
|
|
VitePWA({
|
|
registerType: 'autoUpdate',
|
|
injectRegister: 'auto',
|
|
workbox: {
|
|
globPatterns: ['**/*.{js,css,html,ico,png,svg}'],
|
|
runtimeCaching: [
|
|
{
|
|
urlPattern: ({ url }) => url.pathname.startsWith('/'),
|
|
handler: 'NetworkFirst',
|
|
options: {
|
|
cacheName: 'api-cache',
|
|
cacheableResponse: {
|
|
statuses: [0, 200],
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
srcDir: 'resources/js',
|
|
filename: 'sw.js',
|
|
outDir: 'public',
|
|
}),
|
|
],
|
|
});
|