-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathnext.config.js
More file actions
84 lines (81 loc) · 1.92 KB
/
next.config.js
File metadata and controls
84 lines (81 loc) · 1.92 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
const path = require("path")
const withOffline = require("next-offline")
const { PHASE_DEVELOPMENT_SERVER } = require("next/constants")
const {
map,
compose,
forEach,
reduce,
concat,
filter,
values,
pluck,
isNil,
complement,
} = require("ramda")
const revision = Date.now().toString()
const webpack = (
config,
{ buildId, dev, isServer, defaultLoaders, webpack }
) => {
compose(
forEach(
v =>
(config.resolve.alias[v] = path.resolve(__dirname, `node_modules/${v}`))
),
reduce(concat, ["recoil", "ramda"]),
filter(complement(isNil)),
pluck("peer"),
values
)(require("./nd/.plugins"))
return config
}
const nextConfig = {
target: "serverless",
transformManifest: manifest => ["/"].concat(manifest),
generateInDevMode: true,
generateSw: false,
workboxOpts: {
swDest: "../public/service-worker.js",
swSrc: __dirname + "/nd/sw.js",
maximumFileSizeToCacheInBytes: 100000000,
additionalManifestEntries: map(v => {
return { url: v, revision }
})([
"/",
"/users",
"/magazines",
"/comments",
"/settings",
"/articles/edit",
"/magazines/edit",
`/article`,
`/magazine`,
`/user`,
`/user-articles`,
`/user-magazines`,
"/static/manifest.json",
"/static/favicon.ico",
"/static/images/logo.png",
"/static/images/icon-128x128.png",
"/static/images/icon-144x144.png",
]),
},
webpack,
}
const nextConfig_dev = {
target: "serverless",
transformManifest: manifest => ["/"].concat(manifest),
generateInDevMode: true,
generateSw: false,
workboxOpts: {
swDest: "../public/service-worker.js",
swSrc: __dirname + "/nd/sw_dev.js",
maximumFileSizeToCacheInBytes: 10000000000,
},
webpack,
}
module.exports = (phase, { defaultConfig }) => {
if (phase === PHASE_DEVELOPMENT_SERVER) return withOffline(nextConfig_dev)
return withOffline(nextConfig)
}