|
|
@@ -1,10 +1,25 @@
|
|
|
+import { mkdir, writeFile } from 'node:fs/promises';
|
|
|
+import { resolve } from 'node:path';
|
|
|
import { sveltekit } from '@sveltejs/kit/vite';
|
|
|
import { SvelteKitPWA } from '@vite-pwa/sveltekit';
|
|
|
import { defineConfig } from 'vite';
|
|
|
|
|
|
+function ensurePrerenderedGlob() {
|
|
|
+ return {
|
|
|
+ name: 'ensure-prerendered-glob',
|
|
|
+ apply: 'build',
|
|
|
+ async writeBundle() {
|
|
|
+ const dir = resolve('.svelte-kit/output/prerendered');
|
|
|
+ await mkdir(dir, { recursive: true });
|
|
|
+ await writeFile(resolve(dir, '.keep.json'), '{}\n');
|
|
|
+ }
|
|
|
+ };
|
|
|
+}
|
|
|
+
|
|
|
export default defineConfig({
|
|
|
plugins: [
|
|
|
sveltekit(),
|
|
|
+ ensurePrerenderedGlob(),
|
|
|
SvelteKitPWA({
|
|
|
registerType: 'autoUpdate',
|
|
|
injectRegister: null,
|
|
|
@@ -115,7 +130,10 @@ export default defineConfig({
|
|
|
},
|
|
|
workbox: {
|
|
|
navigateFallback: null,
|
|
|
- globPatterns: ['client/**/*.{js,css,ico,png,svg,webp,webmanifest,woff,woff2}'],
|
|
|
+ globPatterns: [
|
|
|
+ 'client/**/*.{js,css,ico,png,svg,webp,webmanifest,woff,woff2}',
|
|
|
+ 'prerendered/.keep.json'
|
|
|
+ ],
|
|
|
cleanupOutdatedCaches: true,
|
|
|
clientsClaim: true,
|
|
|
skipWaiting: false,
|