2024-10-04 17:25:37 +00:00
|
|
|
import { withSentryConfig } from "@sentry/nextjs";
|
|
|
|
import { format } from "@formkit/tempo";
|
2024-10-28 21:31:04 +00:00
|
|
|
import nextBundleAnalyzer from "@next/bundle-analyzer";
|
2024-10-26 13:58:44 +00:00
|
|
|
import type { NextConfig } from "next";
|
2024-10-04 17:25:37 +00:00
|
|
|
|
2024-10-26 13:58:44 +00:00
|
|
|
const nextConfig: NextConfig = {
|
2024-10-23 15:30:53 +00:00
|
|
|
experimental: {
|
2024-10-27 10:59:41 +00:00
|
|
|
webpackMemoryOptimizations: true,
|
2024-10-23 15:30:53 +00:00
|
|
|
optimizePackageImports: ["@ssr/common", "@radix-ui/react-icons", "chart.js", "react-chartjs-2"],
|
|
|
|
},
|
2024-10-04 17:25:37 +00:00
|
|
|
images: {
|
2024-10-27 10:59:41 +00:00
|
|
|
unoptimized: true,
|
2024-10-04 17:25:37 +00:00
|
|
|
remotePatterns: [
|
|
|
|
{
|
|
|
|
protocol: "https",
|
|
|
|
hostname: "cdn.scoresaber.com",
|
|
|
|
port: "",
|
|
|
|
pathname: "/**",
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
env: {
|
2024-10-09 01:20:34 +00:00
|
|
|
HOSTNAME: "0.0.0.0",
|
2024-10-04 20:37:00 +00:00
|
|
|
NEXT_PUBLIC_BUILD_ID: process.env.GIT_REV || "dev",
|
2024-10-04 17:25:37 +00:00
|
|
|
NEXT_PUBLIC_BUILD_TIME: new Date().toLocaleDateString("en-US", {
|
|
|
|
year: "numeric",
|
|
|
|
month: "long",
|
|
|
|
day: "numeric",
|
|
|
|
hour: "numeric",
|
|
|
|
minute: "numeric",
|
|
|
|
timeZoneName: "short",
|
|
|
|
}),
|
|
|
|
NEXT_PUBLIC_BUILD_TIME_SHORT: format(new Date(), {
|
|
|
|
date: "short",
|
|
|
|
time: "short",
|
|
|
|
}),
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2024-10-28 21:31:04 +00:00
|
|
|
const withBundleAnalyzer = nextBundleAnalyzer({
|
|
|
|
enabled: process.env.ANALYZE === "true",
|
2024-10-04 17:25:37 +00:00
|
|
|
});
|
2024-10-28 21:31:04 +00:00
|
|
|
|
2024-10-28 21:36:39 +00:00
|
|
|
export default withSentryConfig(withBundleAnalyzer(nextConfig), {
|
|
|
|
// For all available options, see:
|
|
|
|
// https://github.com/getsentry/sentry-webpack-plugin#options
|
|
|
|
|
|
|
|
org: "fascinatedcc",
|
|
|
|
project: "scoresaber-reloaded",
|
|
|
|
|
|
|
|
// 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,
|
|
|
|
|
|
|
|
// Automatically annotate React components to show their full name in breadcrumbs and session replay
|
|
|
|
reactComponentAnnotation: {
|
|
|
|
enabled: true,
|
|
|
|
},
|
|
|
|
|
|
|
|
// 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,
|
|
|
|
});
|