// 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 { i18n } = require("./next-i18next.config"); const withBundleAnalyzer = require("@next/bundle-analyzer")({ enabled: process.env.ANALYZE === "true", }); const moduleExports = { future: { webpack5: false, }, i18n: i18n, productionBrowserSourceMaps: true, webpack(config) { config.module.rules.push({ test: /\.svg$/, use: ["@svgr/webpack"], }); return config; }, typescript: { ignoreBuildErrors: true, }, async rewrites() { return [ { source: "/", destination: "/home", }, { source: "/:urlId", destination: "/poll?urlId=:urlId", }, { source: "/p/:urlId", destination: "/poll?urlId=:urlId", }, { source: "/admin/:urlId", destination: "/poll?urlId=:urlId", }, { source: "/verify/:urlId/code/:code", destination: "/poll?urlId=:urlId&code=:code", }, ]; }, }; const sentryWebpackPluginOptions = { // Additional config options for the Sentry Webpack plugin. Keep in mind that // the following options are set automatically, and overriding them is not // recommended: // release, url, org, project, authToken, configFile, stripPrefix, // urlPrefix, include, ignore dryRun: !process.env.SENTRY_AUTH_TOKEN, silent: true, // Suppresses all logs // For all available options, see: // https://github.com/getsentry/sentry-webpack-plugin#options. }; // 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 = withBundleAnalyzer( withSentryConfig(moduleExports, sentryWebpackPluginOptions), );