const withBundleAnalyzer = require('@next/bundle-analyzer')({ enabled: process.env.ANALYZE === 'true', }) module.exports = withBundleAnalyzer({ reactStrictMode: true, pageExtensions: ['js', 'jsx', 'md', 'mdx'], future: { webpack5: true, }, webpack: (config, { dev, isServer }) => { config.module.rules.push({ test: /\.(png|jpe?g|gif|mp4)$/i, use: [ { loader: 'file-loader', options: { publicPath: '/_next', name: 'static/media/[name].[hash].[ext]', }, }, ], }) config.module.rules.push({ test: /\.svg$/, use: ['@svgr/webpack'], }) if (!dev && !isServer) { // Replace React with Preact only in client production build Object.assign(config.resolve.alias, { react: 'preact/compat', 'react-dom/test-utils': 'preact/test-utils', 'react-dom': 'preact/compat', }) } return config }, async rewrites() { return { beforeFiles: [ // Rewrite to prevent a problem when deploying at vercel // which directs a user to the index.xml instead of index.html // https://github.com/timlrx/tailwind-nextjs-starter-blog/issues/16 { source: '/', destination: '/index', }, ], } }, })