// This file sets a custom webpack configuration to use your Next.js app // with Sentry. // https://nextjs.org/docs/api-reference/next.config.js/introduction // https://docs.sentry.io/platforms/javascript/guides/nextjs/ const { withSentryConfig } = require("@sentry/nextjs"); const withBundleAnalyzer = require("@next/bundle-analyzer")({ enabled: process.env.ANALYZE === "true", }); require("dotenv").config({ path: "../../.env", }); /** @type {import('next').NextConfig} */ const nextConfig = { output: process.env.NEXT_PUBLIC_SELF_HOSTED === "true" ? "standalone" : undefined, productionBrowserSourceMaps: true, transpilePackages: [ "@rallly/database", "@rallly/icons", "@rallly/ui", "@rallly/tailwind-config", "@rallly/posthog", "@rallly/emails", ], webpack(config) { config.module.rules.push({ test: /\.svg$/, use: ["@svgr/webpack"], }); return config; }, eslint: { ignoreDuringBuilds: true, }, typescript: { ignoreBuildErrors: true, }, async redirects() { return [ { source: "/support", destination: "https://support.rallly.co", permanent: true, }, { source: "/profile", destination: "/settings/profile", permanent: true, }, ]; }, experimental: { // necessary for server actions using aws-sdk serverComponentsExternalPackages: ["@aws-sdk"], }, }; const sentryWebpackPluginOptions = { // For all available options, see: // https://github.com/getsentry/sentry-webpack-plugin#options org: process.env.SENTRY_ORG, project: process.env.SENTRY_PROJECT, // Only print logs for uploading source maps in CI silent: !process.env.CI, // 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, // Uncomment to route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. // This can increase your server load as well as your hosting bill. // 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. (Does not yet work with App Router route handlers.) // See the following for more information: // https://docs.sentry.io/product/crons/ // https://vercel.com/docs/cron-jobs automaticVercelMonitors: true, }; const withBundleAnalyzerConfig = withBundleAnalyzer(nextConfig); // Make sure adding Sentry options is the last code to run before exporting, to // ensure that your source maps include changes from all other Webpack plugins module.exports = withSentryConfig( withBundleAnalyzerConfig, sentryWebpackPluginOptions, );