73 lines
1.8 KiB
JavaScript
73 lines
1.8 KiB
JavaScript
import { defineConfig } from 'astro/config';
|
|
import tailwind from '@astrojs/tailwind';
|
|
import node from '@astrojs/node';
|
|
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", // 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({
|
|
compat: true // Jeśli używasz React bibliotek
|
|
}),
|
|
tailwind({
|
|
applyBaseStyles: true
|
|
})
|
|
]
|
|
}); |