-
Notifications
You must be signed in to change notification settings - Fork 0
/
next.config.mjs
94 lines (90 loc) · 2.34 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
import { withSentryConfig } from '@sentry/nextjs';
import addMdx from '@next/mdx';
import remarkPrism from 'remark-prism';
import remarkGfm from 'remark-gfm';
import redirects from './redirects.js';
import addAnalyzer from '@next/bundle-analyzer';
const nextConfig = {
reactStrictMode: true,
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'static.donley.xyz',
port: '',
pathname: '/**',
},
{
protocol: 'https',
hostname: 'barcelona.gallery.static.donley.xyz',
port: '',
pathname: '/**',
},
{
protocol: 'https',
hostname: 'library.static.donley.xyz',
port: '',
pathname: '/**',
},
{
protocol: 'https',
hostname: 'badges.donley.xyz',
port: '',
pathname: '/**',
},
{ protocol: 'https', hostname: 'pbs.twimg.com' },
{ protocol: 'https', hostname: 'abs.twimg.com' },
],
formats: ['image/avif', 'image/webp'],
minimumCacheTTL: 60 * 60 * 24 * 90,
},
pageExtensions: ['js', 'jsx', 'mdx', 'ts', 'tsx'],
redirects: async () => {
return [
...redirects.map((r) => {
return {
source: r[0],
destination: r[1],
permanent: Boolean(r[3]) ?? true,
};
}),
];
},
// Support the pages router with the Geist font
transpilePackages: ['geist'],
experimental: {
reactCompiler: true,
optimizePackageImports: [
'@keegandonley/pro-solid-svg-icons',
'@keegandonley/pro-regular-svg-icons',
'@fortawesome/free-brands-svg-icons',
],
},
webpack: (config, { isServer }) => {
// Ignore the warning for tailwind's dynamic requires
if (isServer) {
config.ignoreWarnings = [{ module: /node_modules\/tailwindcss/ }];
}
return config;
},
};
const withBundleAnalyzer = addAnalyzer({
enabled: process.env.ANALYZE === 'true',
});
const withMDX = addMdx({
options: {
remarkPlugins: [remarkPrism, remarkGfm],
},
});
export default withSentryConfig(withBundleAnalyzer(withMDX(nextConfig)), {
org: 'keegancodes',
project: 'keegancodes',
silent: true,
widenClientFileUpload: true,
tunnelRoute: '/monitoring',
hideSourceMaps: true,
automaticVercelMonitors: true,
telemetry: false,
enabled: process.env.NODE_ENV === 'production',
disableLogger: true,
});