diff --git a/astro.config.mjs b/astro.config.mjs index 5b74eac..761b9cb 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -6,23 +6,68 @@ import preact from "@astrojs/preact"; export default defineConfig({ site: "https://fuz.dariuszm.eu", output: 'server', + adapter: node({ mode: "standalone" }), + server: { host: process.env.HOST || '0.0.0.0', port: parseInt(process.env.PORT || '4321'), }, + + // ✅ Build optimizations + build: { + inlineStylesheets: 'auto', // Inline małe CSS-y (<4KB) + }, + vite: { build: { - minify: "esbuild", - cssMinify: "esbuild", + minify: "esbuild", // ✅ Minifikacja JS + cssMinify: true, // ✅ Minifikacja CSS (zmienione z "esbuild" na true) + + // ✅ Rollup optimizations + rollupOptions: { + output: { + // Lepsze nazwy plików z hashami + assetFileNames: 'assets/[name].[hash][extname]', + chunkFileNames: 'chunks/[name].[hash].js', + entryFileNames: 'entry/[name].[hash].js', + + // ✅ Code splitting - Preact w osobnym bundle + manualChunks: (id) => { + if (id.includes('node_modules')) { + if (id.includes('preact')) { + return 'vendor-preact'; + } + if (id.includes('marked')) { + return 'vendor-marked'; + } + return 'vendor'; + } + }, + }, + }, + + // ✅ Chunk size warnings (opcjonalne) + chunkSizeWarningLimit: 500, // KB }, + + // ✅ CSS optimization dla Tailwind + // css: { + // transformer: 'lightningcss', // Szybszy CSS transformer npm install -D lightningcss + // }, }, + + // ✅ HTML compression + compressHTML: true, + integrations: [ - preact(), + preact({ + compat: true // ✅ Jeśli używasz React bibliotek + }), tailwind({ applyBaseStyles: true }) ] -}); +}); \ No newline at end of file