-
Notifications
You must be signed in to change notification settings - Fork 0
/
next.config.js
63 lines (60 loc) · 1.81 KB
/
next.config.js
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
const withPWA = require("next-pwa");
const runtimeCaching = require("next-pwa/cache");
const { createSecureHeaders } = require("next-secure-headers");
const securityHeaders = createSecureHeaders({
contentSecurityPolicy: {
// directives: {
// defaultSrc: "'self'",
// connectSrc: [
// "'self'",
// "www.google-analytics.com",
// "www.googletagmanager.com",
// "https://fonts.googleapis.com",
// "https://fonts.gstatic.com",
// "https://vitals.vercel-insights.com",
// ],
// scriptSrc: ["'self'", "'unsafe-inline'", "'unsafe-eval'", "www.google-analytics.com", "www.googletagmanager.com"],
// styleSrc: ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com"],
// fontSrc: ["'self'", "https://fonts.googleapis.com", "https://fonts.gstatic.com"],
// imgSrc: ["'self'", "data:", "www.google-analytics.com"],
// },
// reportOnly: true,
},
referrerPolicy: "no-referrer-when-downgrade",
}).concat([
{
key: "Permissions-Policy",
value: "camera=(), microphone=(), geolocation=()", // , interest-cohort=()
},
]);
module.exports = withPWA({
webpack: (config, { dev, isServer }) => {
// Replace React with Preact only in client production build
if (!dev && !isServer) {
Object.assign(config.resolve.alias, {
react: "preact/compat",
"react-dom/test-utils": "preact/test-utils",
"react-dom": "preact/compat",
});
}
return config;
},
async headers() {
return [
{
source: "/(.*)",
headers: securityHeaders,
},
];
},
reactStrictMode: true,
poweredByHeader: false,
pwa: {
disable: process.env.NODE_ENV === "development",
dest: "public",
runtimeCaching,
},
// images: {
// domains: ["media.graphcms.com"],
// },
});