mirror of
https://github.com/lukevella/rallly.git
synced 2025-04-28 09:46:39 +02:00
105 lines
3.2 KiB
JavaScript
105 lines
3.2 KiB
JavaScript
// 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",
|
|
});
|
|
|
|
/** @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,
|
|
},
|
|
{
|
|
source: "/auth/disable-notifications",
|
|
destination: "/api/notifications/unsubscribe",
|
|
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 =
|
|
process.env.NEXT_PUBLIC_SELF_HOSTED === "true"
|
|
? withBundleAnalyzerConfig
|
|
: withSentryConfig(withBundleAnalyzerConfig, sentryWebpackPluginOptions);
|