-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnext.config.js
More file actions
91 lines (87 loc) · 2.35 KB
/
next.config.js
File metadata and controls
91 lines (87 loc) · 2.35 KB
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
/** @type {import('next').NextConfig} */
const nextConfig = {
// Optimized for Vercel deployment
eslint: {
ignoreDuringBuilds: true,
},
images: {
unoptimized: true,
domains: ["localhost", "vercel.app"],
formats: ["image/webp", "image/avif"],
},
// Enable compression
compress: true,
// Optimize for production
swcMinify: true,
// Experimental features for better performance
experimental: {
optimizePackageImports: ["lucide-react", "@radix-ui/react-icons"],
},
// Webpack config to ignore optional dependencies
webpack: (config, { isServer }) => {
if (!isServer) {
// Ignore optional dependencies for socket.io-client in browser
config.resolve.fallback = {
...config.resolve.fallback,
bufferutil: false,
"utf-8-validate": false,
};
}
// Suppress all warnings for optional WebSocket dependencies
config.ignoreWarnings = [
...(config.ignoreWarnings || []),
// Ignore optional ws dependencies
{ module: /node_modules\/ws\/lib\/buffer-util\.js/ },
{ module: /node_modules\/ws\/lib\/validation\.js/ },
// Ignore all "Can't resolve" warnings for these optional packages
(warning) => {
return (
warning.message.includes("Can't resolve 'bufferutil'") ||
warning.message.includes("Can't resolve 'utf-8-validate'")
);
},
];
// Hide Module not found warnings in console
const originalWarn = config.infrastructureLogging?.level;
config.infrastructureLogging = {
level: "error",
};
return config;
},
// Proxy API requests to backend
async rewrites() {
return [
{
source: "/api/:path*",
destination: "http://localhost:5000/api/:path*",
},
];
},
// Custom headers for better SEO and security
async headers() {
return [
{
source: "/(.*)",
headers: [
{
key: "X-Frame-Options",
value: "DENY",
},
{
key: "X-Content-Type-Options",
value: "nosniff",
},
{
key: "Referrer-Policy",
value: "strict-origin-when-cross-origin",
},
{
key: "Cross-Origin-Opener-Policy",
value: "same-origin-allow-popups",
},
],
},
];
},
};
module.exports = nextConfig;