import withPWAInit from '@ducanh2912/next-pwa'; import { initOpenNextCloudflareForDev } from '@opennextjs/cloudflare'; const isDev = process.env['NODE_ENV'] === 'development'; const appPlatform = process.env['NEXT_PUBLIC_APP_PLATFORM']; if (isDev) { initOpenNextCloudflareForDev(); } const exportOutput = appPlatform !== 'web' && !isDev; /** @type {import('next').NextConfig} */ const nextConfig = { // Ensure Next.js uses SSG instead of SSR // https://nextjs.org/docs/pages/building-your-application/deploying/static-exports output: exportOutput ? 'export' : undefined, pageExtensions: exportOutput ? ['jsx', 'tsx'] : ['js', 'jsx', 'ts', 'tsx'], // Note: This feature is required to use the Next.js Image component in SSG mode. // See https://nextjs.org/docs/messages/export-image-api for different workarounds. images: { unoptimized: true, }, devIndicators: false, // Configure assetPrefix or else the server won't properly resolve your assets. assetPrefix: '', reactStrictMode: true, async headers() { return [ { source: '/.well-known/apple-app-site-association', headers: [ { key: 'Content-Type', value: 'application/json', }, ], }, ]; }, }; const withPWA = withPWAInit({ dest: 'public', disable: isDev || appPlatform !== 'web', cacheOnFrontEndNav: true, aggressiveFrontEndNavCaching: true, reloadOnOnline: true, swcMinify: true, fallbacks: { document: '/offline', }, workboxOptions: { disableDevLogs: true, }, }); export default withPWA(nextConfig);