-
Notifications
You must be signed in to change notification settings - Fork 0
/
next.config.js
41 lines (36 loc) · 1.22 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
const {
PHASE_DEVELOPMENT_SERVER,
PHASE_PRODUCTION_BUILD,
} = require("next/constants");
/** @type {(phase: string, defaultConfig: import("next").NextConfig) => Promise<import("next").NextConfig>} */
module.exports = async (phase) => {
/** @type {import("next").NextConfig} */
const nextConfig = {
reactStrictMode: false,
webpack: (config, { isServer }) => {
// Fixes npm packages that depend on `fs` module
if (!isServer) {
config.resolve.fallback = {
// if you miss it, all the other options in fallback, specified
// by next.js will be dropped. Doesn't make much sense, but how it is
...config.resolve.fallback,
// the solution
fs: false,
module: false,
perf_hooks: false,
};
}
return config;
},
};
if (phase === PHASE_DEVELOPMENT_SERVER || phase === PHASE_PRODUCTION_BUILD) {
const withSerwist = (await import("@serwist/next")).default({
// Note: This is only an example. If you use Pages Router,
// use something else that works, such as "service-worker/index.ts".
swSrc: "app/sw.ts",
swDest: "public/sw.js",
});
return withSerwist(nextConfig);
}
return nextConfig;
};