This commit is contained in:
148
next.config.js
148
next.config.js
@ -1,31 +1,47 @@
|
||||
const nextBuildId = require("next-build-id");
|
||||
const { withSentryConfig } = require("@sentry/nextjs");
|
||||
const withBundleAnalyzer = require("@next/bundle-analyzer")({
|
||||
enabled: false,
|
||||
});
|
||||
const withBundleAnalyzer = require("@next/bundle-analyzer")({ enabled: false });
|
||||
const infisicalClient = require("./src/secrets");
|
||||
|
||||
// Define remote patterns for images
|
||||
const remotePatterns = [
|
||||
{ protocol: "https", hostname: "cdn.fascinated.cc", pathname: "/**" },
|
||||
{ protocol: "https", hostname: "cdn.scoresaber.com", pathname: "/**" },
|
||||
{ protocol: "https", hostname: "cdn.jsdelivr.net", pathname: "/**" },
|
||||
{ protocol: "https", hostname: "eu.cdn.beatsaver.com", pathname: "/**" },
|
||||
{ protocol: "https", hostname: "na.cdn.beatsaver.com", pathname: "/**" },
|
||||
{
|
||||
protocol: "https",
|
||||
hostname: "avatars.akamai.steamstatic.com",
|
||||
pathname: "/**",
|
||||
},
|
||||
];
|
||||
|
||||
// Define optimized package imports
|
||||
const optimizePackageImports = [
|
||||
"react",
|
||||
"react-dom",
|
||||
"next-themes",
|
||||
"react-tostify",
|
||||
"websocket",
|
||||
"cslx",
|
||||
"chart.js",
|
||||
"react-chartjs-2",
|
||||
"country-list",
|
||||
"@sentry/nextjs",
|
||||
];
|
||||
|
||||
/** @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,
|
||||
experimental: {
|
||||
webpackBuildWorker: true,
|
||||
optimizePackageImports,
|
||||
},
|
||||
env: {
|
||||
NEXT_PUBLIC_BUILD_ID:
|
||||
process.env.GIT_REV || nextBuildId.sync({ dir: __dirname }),
|
||||
@ -37,80 +53,26 @@ const nextConfig = {
|
||||
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: "/**",
|
||||
},
|
||||
],
|
||||
},
|
||||
images: { remotePatterns },
|
||||
};
|
||||
|
||||
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,
|
||||
},
|
||||
);
|
||||
module.exports = async () =>
|
||||
withSentryConfig(
|
||||
withBundleAnalyzer(nextConfig),
|
||||
{
|
||||
silent: true,
|
||||
org: "sentry",
|
||||
project: "scoresaber-reloaded",
|
||||
url: "https://sentry.fascinated.cc",
|
||||
authToken: (await infisicalClient.getSecret("SENTRY_AUTH_TOKEN"))
|
||||
.secretValue,
|
||||
dryRun: process.env.NODE_ENV !== "development",
|
||||
},
|
||||
{
|
||||
widenClientFileUpload: false,
|
||||
transpileClientSDK: false,
|
||||
tunnelRoute: "/monitoring",
|
||||
hideSourceMaps: true,
|
||||
disableLogger: true,
|
||||
},
|
||||
);
|
||||
|
Reference in New Issue
Block a user