import { withSentryConfig } from '@sentry/nextjs'; /** * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful * for Docker builds. */ await import('./src/env.mjs'); /** @type {import("next").NextConfig} */ const config = { reactStrictMode: true, transpilePackages: [ '@openpanel/queue', '@openpanel/db', '@openpanel/common', '@openpanel/constants', '@openpanel/redis', '@openpanel/validation', ], eslint: { ignoreDuringBuilds: true }, typescript: { ignoreBuildErrors: true }, experimental: { // Avoid "Critical dependency: the request of a dependency is an expression" serverComponentsExternalPackages: ['bullmq', 'ioredis'], }, /** * If you are using `appDir` then you must comment the below `i18n` config out. * * @see https://github.com/vercel/next.js/issues/41980 */ i18n: { locales: ['en'], defaultLocale: 'en', }, }; export default withSentryConfig( config, { // For all available options, see: // https://github.com/getsentry/sentry-webpack-plugin#options // Suppresses source map uploading logs during build silent: true, org: 'openpaneldev', project: 'javascript-nextjs', }, { // For all available options, see: // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ // Upload a larger set of source maps for prettier stack traces (increases build time) widenClientFileUpload: true, // Transpiles SDK to be compatible with IE11 (increases bundle size) transpileClientSDK: false, // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. (increases server load) // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- // side errors will fail. // tunnelRoute: '/monitoring', // Hides source maps from generated client bundles hideSourceMaps: true, // Automatically tree-shake Sentry logger statements to reduce bundle size disableLogger: true, // Enables automatic instrumentation of Vercel Cron Monitors. // See the following for more information: // https://docs.sentry.io/product/crons/ // https://vercel.com/docs/cron-jobs automaticVercelMonitors: false, } );