gantt-board/next.config.ts

68 lines
1.6 KiB
TypeScript

import type { NextConfig } from "next";
const nextConfig: NextConfig = {
// Bundle optimization
experimental: {
// Optimize package imports for faster builds and smaller bundles
optimizePackageImports: [
"lucide-react",
"@radix-ui/react-dialog",
"@radix-ui/react-dropdown-menu",
"@radix-ui/react-select",
],
},
// Webpack optimization
webpack: (config, { isServer }) => {
// Split chunks for better caching
if (!isServer) {
config.optimization = {
...config.optimization,
splitChunks: {
chunks: "all",
cacheGroups: {
// Vendor chunk for node_modules
vendor: {
name: "vendor",
test: /[\\/]node_modules[\\/]/,
priority: 10,
reuseExistingChunk: true,
},
// DND kit chunk - heavy library
dnd: {
name: "dnd",
test: /[\\/]node_modules[\\/]@dnd-kit[\\/]/,
priority: 20,
reuseExistingChunk: true,
},
// Radix UI chunk
radix: {
name: "radix",
test: /[\\/]node_modules[\\/]@radix-ui[\\/]/,
priority: 15,
reuseExistingChunk: true,
},
},
},
};
}
return config;
},
// Image optimization
images: {
remotePatterns: [],
},
// Compression
compress: true,
// Power optimization - reduce CPU usage
poweredByHeader: false,
// Trailing slashes for SEO
trailingSlash: false,
};
export default nextConfig;