diff --git a/bun.lock b/bun.lock index 3bf3646614..7583acf0e2 100644 --- a/bun.lock +++ b/bun.lock @@ -8,6 +8,7 @@ "@sentry/sveltekit": "^10.28.0", "h3": "^1.15.4", "sharp": "^0.34.5", + "sirv": "^3.0.2", }, "devDependencies": { "@appwrite.io/console": "^0.6.4", @@ -1834,7 +1835,7 @@ "simple-swizzle": ["simple-swizzle@0.2.2", "", { "dependencies": { "is-arrayish": "0.3.2" } }, "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="], - "sirv": ["sirv@3.0.1", "", { "dependencies": { "@polka/url": "1.0.0-next.29", "mrmime": "2.0.1", "totalist": "3.0.1" } }, "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A=="], + "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="], "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], @@ -2162,6 +2163,8 @@ "@sveltejs/kit/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "@sveltejs/kit/sirv": ["sirv@3.0.1", "", { "dependencies": { "@polka/url": "1.0.0-next.29", "mrmime": "2.0.1", "totalist": "3.0.1" } }, "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A=="], + "@sveltejs/vite-plugin-svelte/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], "@tailwindcss/node/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], diff --git a/package.json b/package.json index ea038066ea..6e6fbd9e56 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "dependencies": { "@sentry/sveltekit": "^10.28.0", "h3": "^1.15.4", - "sharp": "^0.34.5" + "sharp": "^0.34.5", + "sirv": "^3.0.2" }, "devDependencies": { "@appwrite.io/console": "^0.6.4", diff --git a/server/main.js b/server/main.js index 90e642acc3..1cb11ccebc 100644 --- a/server/main.js +++ b/server/main.js @@ -1,4 +1,5 @@ import { sitemaps } from './sitemap.js'; +import sirv from 'sirv'; import { createServer } from 'node:http'; import { handler } from '../build/handler.js'; import { createApp, defineEventHandler, fromNodeMiddleware, toNodeListener } from 'h3'; @@ -22,6 +23,18 @@ async function main() { app.use(['/sitemap.xml', '/sitemaps'], await sitemaps()); + app.use( + '/', + fromNodeMiddleware( + sirv('build/client', { + gzip: true, + etag: true, + maxAge: 31536000, + immutable: true + }) + ) + ); + app.use(fromNodeMiddleware(handler)); const server = createServer(toNodeListener(app)).listen(port);