Shumiland/next.config.ts
Vadym Samoilenko 63af1f86e3 perf: add AVIF/WebP next image config and image optimization script
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 13:04:04 +01:00

40 lines
1.1 KiB
TypeScript

import { withPayload } from '@payloadcms/next/withPayload'
import type { NextConfig } from 'next'
const ONE_YEAR = 'public, max-age=31536000, immutable'
const nextConfig: NextConfig = {
output: 'standalone',
reactStrictMode: true,
async headers() {
return [
{
source: '/images/:path*',
headers: [{ key: 'Cache-Control', value: ONE_YEAR }],
},
{
source: '/_next/static/:path*',
headers: [{ key: 'Cache-Control', value: ONE_YEAR }],
},
]
},
webpack: (config) => {
config.watchOptions = {
...config.watchOptions,
ignored: /node_modules|importMap\.js|\.next/,
}
return config
},
images: {
formats: ['image/avif', 'image/webp'],
deviceSizes: [375, 640, 768, 1024, 1280, 1536, 1920],
imageSizes: [16, 32, 64, 96, 128, 256, 384, 512, 694],
minimumCacheTTL: 31536000,
remotePatterns: [
{ protocol: 'http', hostname: 'localhost', port: '3000', pathname: '/media/**' },
{ protocol: 'https', hostname: 'shumiland.com.ua', pathname: '/media/**' },
],
},
}
export default withPayload(nextConfig)