-
Notifications
You must be signed in to change notification settings - Fork 1
/
next.config.mjs
110 lines (96 loc) · 2.75 KB
/
next.config.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import bundleAnalyzer from "@next/bundle-analyzer"
import { withSentryConfig } from "@sentry/nextjs"
/** @type {import('@sentry/nextjs/types/config/types').WebpackConfigFunction} */
const webpack = (config) => {
/** @type {import('@sentry/nextjs/types/config/types').WebpackConfigObject} */
const overrides = {
ignoreWarnings: [
{ module: /__barrel_optimize__/} // FIXME
],
module: {
rules: [
...config.module.rules,
{
test: /\.svg$/,
use: ["@svgr/webpack"],
},
{
// Ignore .d.ts.map files coming from protofun-sdk
loader: "ignore-loader",
test: /\.d\.ts\.map$/,
},
],
},
}
return Object.assign({}, config, overrides)
}
/** @type {import('next').NextConfig} */
let nextConfig = {
modularizeImports: {
"@mui/icons-material": {
transform: "@mui/icons-material/{{member}}",
},
},
output: "standalone",
// https://github.com/facebook/react/issues/24502
reactStrictMode: false,
redirects: async () => [
{
destination: "https://protocol.fun/:path*",
has: [{ type: "host", value: "www.protocol.fun" }],
permanent: true,
source: "/:path*",
},
],
async rewrites() {
return [
{
destination: "https://api-eu.mixpanel.com/:slug",
source: "/mp/:slug",
},
{
destination: "https://eu.posthog.com/:path*",
source: "/ph/:path*",
},
]
},
swcMinify: true,
typescript: {
ignoreBuildErrors: true,
},
webpack,
}
const withBundleAnalyzer = bundleAnalyzer({
enabled: process.env.ANALYZE === "true",
})
nextConfig = withBundleAnalyzer(nextConfig)
nextConfig = withSentryConfig(
nextConfig,
{
org: "coldpizza",
project: "protofun",
// For all available options, see:
// https://github.com/getsentry/sentry-webpack-plugin#options
// Suppresses source map uploading logs during build
silent: true,
},
{
// Automatically tree-shake Sentry logger statements to reduce bundle size
disableLogger: true,
// Hides source maps from generated client bundles
hideSourceMaps: true,
// 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",
// 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,
}
)
// nextConfig = million.next(nextConfig, {
// // if you're using RSC:
// auto: { rsc: true },
// });
export default nextConfig