import { createMDX } from 'fumadocs-mdx/next'; import type { NextConfig } from 'next'; import createNextIntlPlugin from 'next-intl/plugin'; /** * https://nextjs.org/docs/app/api-reference/config/next-config-js */ const nextConfig: NextConfig = { // Docker standalone output ...(process.env.DOCKER_BUILD === 'true' && { output: 'standalone' }), /* config options here */ devIndicators: false, // https://nextjs.org/docs/architecture/nextjs-compiler#remove-console // Remove all console.* calls in production only compiler: { // removeConsole: process.env.NODE_ENV === 'production', }, // https://github.com/vercel/next.js/discussions/50177#discussioncomment-6006702 // fix build error: Module build failed: UnhandledSchemeError: // Reading from "cloudflare:sockets" is not handled by plugins (Unhandled scheme). webpack: (config, { webpack }) => { config.plugins.push( new webpack.IgnorePlugin({ resourceRegExp: /^pg-native$|^cloudflare:sockets$/, }) ); return config; }, images: { // https://vercel.com/docs/image-optimization/managing-image-optimization-costs#minimizing-image-optimization-costs // https://nextjs.org/docs/app/api-reference/components/image#unoptimized // vercel has limits on image optimization, 1000 images per month unoptimized: process.env.DISABLE_IMAGE_OPTIMIZATION === 'true', remotePatterns: [ { protocol: 'https', hostname: 'avatars.githubusercontent.com', }, { protocol: 'https', hostname: 'lh3.googleusercontent.com', }, { protocol: 'https', hostname: 'randomuser.me', }, { protocol: 'https', hostname: 'res.cloudinary.com', }, { protocol: 'https', hostname: 'ik.imagekit.io', }, { protocol: 'https', hostname: 'html.tailus.io', }, { protocol: 'https', hostname: 'service.firecrawl.dev', }, ], }, }; /** * You can specify the path to the request config file or use the default one (@/i18n/request.ts) * * https://next-intl.dev/docs/getting-started/app-router/with-i18n-routing#next-config */ const withNextIntl = createNextIntlPlugin(); /** * https://fumadocs.dev/docs/ui/manual-installation * https://fumadocs.dev/docs/mdx/plugin */ const withMDX = createMDX(); export default withMDX(withNextIntl(nextConfig)); // https://opennext.js.org/cloudflare/get-started#12-develop-locally import { initOpenNextCloudflareForDev } from '@opennextjs/cloudflare'; // during local development, to access in any of your server code, local versions of Cloudflare bindings initOpenNextCloudflareForDev();