const bundleAnalyzer = require('@next/bundle-analyzer') const withOffline = require('next-offline') const withBundleAnalyzer = bundleAnalyzer({ enabled: true }) const config = withOffline({ target: 'serverless', dontAutoRegisterSw: true, // https://github.com/hanford/next-offline/blob/master/packages/now2-example/next.config.js workboxOpts: { swDest: 'static/service-worker.js', globDirectory: '.', globPatterns: ['static/**/*'], runtimeCaching: [ { urlPattern: /^https?.*/, handler: 'NetworkFirst', options: { cacheName: 'offlineCache', expiration: { maxEntries: 200 } } } ] }, env: { FIREBASE_PROJECT_ID: process.env.FIREBASE_PROJECT_ID, FIREBASE_MESSAGING_SENDER_ID: process.env.FIREBASE_MESSAGING_SENDER_ID, FIREBASE_FE_APP_ID: process.env.FIREBASE_FE_APP_ID, FIREBASE_API_KEY: process.env.FIREBASE_API_KEY, STRIPE_PUBLIC_KEY: process.env.STRIPE_PUBLIC_KEY }, webpack: (config, options) => { config.module.rules.push({ test: /\.js$/, include: /node_modules\/graphql-language-service-parser/, use: [options.defaultLoaders.babel] }) return config } }) module.exports = process.env.ANALYZE === 'true' ? withBundleAnalyzer(config) : config