82 lines
2.5 KiB
JavaScript
82 lines
2.5 KiB
JavaScript
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
// EN: Enable React strict mode for development warnings
|
|
// VI: Bật React strict mode để hiển thị warnings trong development
|
|
reactStrictMode: true,
|
|
|
|
// EN: Output standalone build for container deployment
|
|
// VI: Output build standalone để deploy trong container
|
|
output: 'standalone',
|
|
|
|
// EN: Image optimization configuration
|
|
// VI: Cấu hình tối ưu hình ảnh
|
|
images: {
|
|
// EN: Enable image optimization with WebP/AVIF formats
|
|
// VI: Bật tối ưu hình ảnh với định dạng WebP/AVIF
|
|
formats: ['image/avif', 'image/webp'],
|
|
// EN: Remote image domains (if needed)
|
|
// VI: Các domain hình ảnh từ xa (nếu cần)
|
|
remotePatterns: [
|
|
{
|
|
protocol: 'https',
|
|
hostname: '**',
|
|
},
|
|
],
|
|
// EN: Device sizes for responsive images
|
|
// VI: Kích thước thiết bị cho hình ảnh responsive
|
|
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
|
|
// EN: Image sizes for different breakpoints
|
|
// VI: Kích thước hình ảnh cho các breakpoint khác nhau
|
|
imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
|
|
},
|
|
|
|
// EN: Environment variables exposed to the browser
|
|
// VI: Biến môi trường được expose cho browser
|
|
env: {
|
|
// EN: Public API URL for client-side API calls
|
|
// VI: URL API public để gọi API từ client-side
|
|
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost/api/v1',
|
|
},
|
|
|
|
// EN: Headers for caching static assets (1 year) - Performance optimization
|
|
// VI: Headers cho caching static assets (1 năm) - Tối ưu hiệu suất
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: '/_next/static/:path*',
|
|
headers: [
|
|
{
|
|
key: 'Cache-Control',
|
|
value: 'public, max-age=31536000, immutable',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
source: '/images/:path*',
|
|
headers: [
|
|
{
|
|
key: 'Cache-Control',
|
|
value: 'public, max-age=31536000, immutable',
|
|
},
|
|
],
|
|
},
|
|
];
|
|
},
|
|
|
|
// EN: Compress responses - Performance optimization
|
|
// VI: Nén responses - Tối ưu hiệu suất
|
|
compress: true,
|
|
|
|
// EN: Remove console.log in production
|
|
// VI: Xóa console.log trong production
|
|
...(process.env.NODE_ENV === 'production' && {
|
|
compiler: {
|
|
removeConsole: {
|
|
exclude: ['error', 'warn'],
|
|
},
|
|
},
|
|
}),
|
|
};
|
|
|
|
module.exports = nextConfig;
|