Files
fc56726c-3e3f-41e4-a921-51e…/next.config.js
2026-03-06 19:10:48 +00:00

72 lines
1.6 KiB
JavaScript

/** @type {import('next').NextConfig} */
const nextConfig = {
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'webuild-dev.s3.eu-north-1.amazonaws.com',
pathname: '/**',
},
{
protocol: 'https',
hostname: '*.cloudinary.com',
pathname: '/**',
},
{
protocol: 'https',
hostname: 'images.unsplash.com',
pathname: '/**',
},
],
unoptimized: false,
formats: ['image/avif', 'image/webp'],
deviceSizes: [320, 420, 640, 768, 1024, 1280, 1536],
imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
},
compress: true,
swcMinify: true,
reactStrictMode: true,
poweredByHeader: false,
productionBrowserSourceMaps: false,
experimental: {
optimizePackageImports: [
'@radix-ui/react-dialog',
'@radix-ui/react-dropdown-menu',
'@radix-ui/react-slider',
'lucide-react',
],
},
headers: async () => [
{
source: '/:path*',
headers: [
{
key: 'X-DNS-Prefetch-Control',
value: 'on',
},
{
key: 'X-Frame-Options',
value: 'SAMEORIGIN',
},
{
key: 'X-Content-Type-Options',
value: 'nosniff',
},
{
key: 'X-XSS-Protection',
value: '1; mode=block',
},
{
key: 'Referrer-Policy',
value: 'strict-origin-when-cross-origin',
},
{
key: 'Permissions-Policy',
value: 'geolocation=(), microphone=(), camera=()',
},
],
},
],
};
module.exports = nextConfig;