scoresaber-reloaded-v2/next.config.js
2023-11-13 03:52:20 +00:00

117 lines
2.8 KiB
JavaScript

const nextBuildId = require("next-build-id");
const { withSentryConfig } = require("@sentry/nextjs");
const withBundleAnalyzer = require("@next/bundle-analyzer")({
enabled: false,
});
/** @type {import('next').NextConfig} */
const nextConfig = {
generateEtags: true,
reactStrictMode: true,
swcMinify: true,
experimental: {
webpackBuildWorker: true,
optimizePackageImports: [
"react",
"react-dom",
"next-themes",
"react-tostify",
"websocket",
"cslx",
"chart.js",
"react-chartjs-2",
"country-list",
"@sentry/nextjs",
],
},
compress: false,
poweredByHeader: false,
env: {
NEXT_PUBLIC_BUILD_ID:
process.env.GIT_REV || nextBuildId.sync({ dir: __dirname }),
NEXT_PUBLIC_BUILD_TIME: new Date().toLocaleDateString("en-US", {
year: "numeric",
month: "long",
day: "numeric",
hour: "numeric",
minute: "numeric",
}),
},
images: {
remotePatterns: [
{
protocol: "https",
hostname: "cdn.fascinated.cc",
port: "",
pathname: "/**",
},
{
protocol: "https",
hostname: "cdn.scoresaber.com",
port: "",
pathname: "/**",
},
{
protocol: "https",
hostname: "cdn.jsdelivr.net",
port: "",
pathname: "/**",
},
{
protocol: "https",
hostname: "eu.cdn.beatsaver.com",
port: "",
pathname: "/**",
},
{
protocol: "https",
hostname: "na.cdn.beatsaver.com",
port: "",
pathname: "/**",
},
{
protocol: "https",
hostname: "avatars.akamai.steamstatic.com",
port: "",
pathname: "/**",
},
],
},
};
module.exports = withBundleAnalyzer(nextConfig);
module.exports = withSentryConfig(
module.exports,
{
// For all available options, see:
// https://github.com/getsentry/sentry-webpack-plugin#options
// Suppresses source map uploading logs during build
silent: true,
org: "sentry",
project: "scoresaber-reloaded",
url: "https://sentry.fascinated.cc",
authToken: process.env.SENTRY_AUTH_TOKEN,
},
{
// 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: false,
// 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)
tunnelRoute: "/monitoring",
// Hides source maps from generated client bundles
hideSourceMaps: true,
// Automatically tree-shake Sentry logger statements to reduce bundle size
disableLogger: true,
},
);