To use the optimizer, you must configure next.config.js (or .ts) with a custom loader, define image sizes, and set environment variables for the optimizer's behavior. You must also transpile the package.
Key Environment Variables:
nextImageExportOptimizer_imageFolderPath: The folder inside public/ where path-string images are located (default: public/images).nextImageExportOptimizer_exportFolderPath: The destination for optimized images (default: out).nextImageExportOptimizer_quality: Image quality (default: 75).nextImageExportOptimizer_storePicturesInWEBP: Whether to convert images to WEBP (default: true).nextImageExportOptimizer_generateAndUseBlurImages: Enables automatic blurry placeholder generation (default: true).nextImageExportOptimizer_remoteImageCacheTTL: Cache lifetime for remote images in seconds (default: 0).nextImageExportOptimizer_exportFolderName: The name of the folder within the export directory where optimized images are stored.
// next.config.js
module.exports = {
output: "export",
images: {
loader: "custom",
imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
},
transpilePackages: ["next-image-export-optimizer"],
env: {
nextImageExportOptimizer_imageFolderPath: "public/images",
nextImageExportOptimizer_exportFolderPath: "out",
nextImageExportOptimizer_quality: "75",
nextImageExportOptimizer_storePicturesInWEBP: "true",
nextImageExportOptimizer_exportFolderName: "nextImageExportOptimizer",
nextImageExportOptimizer_generateAndUseBlurImages: "true",
nextImageExportOptimizer_remoteImageCacheTTL: "0",
},
};