-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnext.config.js
More file actions
93 lines (90 loc) · 2.64 KB
/
next.config.js
File metadata and controls
93 lines (90 loc) · 2.64 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
92
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
output: 'standalone',
serverExternalPackages: ['discord.js', '@discordjs/ws', 'zlib-sync', 'bufferutil', 'utf-8-validate'],
images: {
remotePatterns: [
{
protocol: 'https',
hostname: '**',
},
{
protocol: 'http',
hostname: '**',
},
],
},
async headers() {
return [
{
source: '/:path*',
headers: [
{
key: 'X-DNS-Prefetch-Control',
value: 'on'
},
{
key: 'Strict-Transport-Security',
value: 'max-age=63072000; includeSubDomains; preload'
},
{
key: 'X-Frame-Options',
value: 'SAMEORIGIN'
},
{
key: 'X-Content-Type-Options',
value: 'nosniff'
},
{
key: 'X-XSS-Protection',
value: '1; mode=block'
},
{
key: 'Referrer-Policy',
value: 'origin-when-cross-origin'
},
{
key: 'Permissions-Policy',
value: 'camera=(), microphone=(), geolocation=()'
},
{
key: 'Content-Security-Policy',
value: "default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https:;"
}
],
},
]
},
// Turbopack configuration
// The serverExternalPackages option handles Discord.js externals in Turbopack
turbopack: {},
// Keep webpack config for compatibility when explicitly using --webpack flag
webpack: (config, { isServer }) => {
// Exclude Discord.js and native dependencies from bundling
// These are server-only modules that shouldn't be bundled
if (isServer) {
const existingExternals = config.externals || []
config.externals = [
...(Array.isArray(existingExternals) ? existingExternals : [existingExternals]),
// Mark Discord.js packages as external to prevent bundling
({ request }, callback) => {
if (
request === 'discord.js' ||
request === '@discordjs/ws' ||
request === 'zlib-sync' ||
request === 'bufferutil' ||
request === 'utf-8-validate' ||
request?.startsWith('discord.js/') ||
request?.startsWith('@discordjs/')
) {
return callback(null, `commonjs ${request}`)
}
callback()
},
]
}
return config
},
}
module.exports = nextConfig