import nextra from 'nextra';
import path from 'node:path';
const withNextra = nextra({
theme: 'nextra-theme-docs',
themeConfig: './theme.config.tsx',
});
const sep = path.sep === '/' ? '/' : '\\\\';
const ALLOWED_SVG_REGEX = new RegExp(`${sep}icons${sep}.+\\.svg$`);
export default withNextra({
webpack(config) {
const fileLoaderRule = config.module.rules.find((rule) =>
rule.test?.test?.('.svg'),
);
fileLoaderRule.exclude = ALLOWED_SVG_REGEX;
config.module.rules.push({
test: ALLOWED_SVG_REGEX,
use: ['@svgr/webpack'],
});
return config;
},
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',
},
trailingSlash: true,
});