Skip to content

Commit a0fffc7

Browse files
committed
feat(pwa) use offline-plugin for service worker setup and offline support
1 parent cea1b0c commit a0fffc7

File tree

4 files changed

+32
-8
lines changed

4 files changed

+32
-8
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
"modularscale-sass": "^3.0.3",
110110
"node-sass": "^4.5.3",
111111
"npm-run-all": "^4.1.1",
112+
"offline-plugin": "^5.0.7",
112113
"optimize-css-assets-webpack-plugin": "^5.0.1",
113114
"postcss-loader": "^2.1.3",
114115
"redirect-webpack-plugin": "^0.1.1",

src/components/Site/Site.jsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ import './Site.scss';
3131
// Load Content Tree
3232
import Content from '../../_content.json';
3333

34+
// call offline plugin so it can build
35+
if (isClient) {
36+
require('offline-plugin/runtime').install();
37+
}
38+
3439
class Site extends React.Component {
3540
state = {
3641
mobileSidebarOpen: false

webpack.prod.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const flattenContentTree = require('./src/utilities/flatten-content-tree');
77
const contentTree = require('./src/_content.json');
88
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
99
const TerserJSPlugin = require('terser-webpack-plugin');
10+
const OfflinePlugin = require('offline-plugin');
1011

1112
// Load Common Configuration
1213
const common = require('./webpack.common.js');
@@ -43,7 +44,8 @@ const prod = {
4344
to: './assets/'
4445
},
4546
'CNAME'
46-
])
47+
]),
48+
new OfflinePlugin()
4749
]
4850
};
4951

yarn.lock

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3057,16 +3057,16 @@ deep-equal@^1.0.0, deep-equal@^1.0.1:
30573057
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
30583058
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
30593059

3060+
deep-extend@^0.5.1, deep-extend@~0.5.1:
3061+
version "0.5.1"
3062+
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f"
3063+
integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==
3064+
30603065
deep-extend@^0.6.0:
30613066
version "0.6.0"
30623067
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
30633068
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
30643069

3065-
deep-extend@~0.5.1:
3066-
version "0.5.1"
3067-
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f"
3068-
integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==
3069-
30703070
deep-is@~0.1.3:
30713071
version "0.1.3"
30723072
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -3434,6 +3434,11 @@ [email protected]:
34343434
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
34353435
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
34363436

3437+
ejs@^2.3.4:
3438+
version "2.6.1"
3439+
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
3440+
integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==
3441+
34373442
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.124, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47:
34383443
version "1.3.125"
34393444
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.125.tgz#dbde0e95e64ebe322db0eca764d951f885a5aff2"
@@ -6374,7 +6379,7 @@ loader-runner@^2.3.0:
63746379
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
63756380
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
63766381

6377-
loader-utils@^0.2.10, loader-utils@^0.2.16:
6382+
loader-utils@0.2.x, loader-utils@^0.2.10, loader-utils@^0.2.16:
63786383
version "0.2.17"
63796384
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
63806385
integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
@@ -7071,7 +7076,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
70717076
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
70727077
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
70737078

7074-
"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2, minimatch@~3.0.4:
7079+
"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2, minimatch@~3.0.4:
70757080
version "3.0.4"
70767081
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
70777082
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -7666,6 +7671,17 @@ obuf@^1.0.0, obuf@^1.1.2:
76667671
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
76677672
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
76687673

7674+
offline-plugin@^5.0.7:
7675+
version "5.0.7"
7676+
resolved "https://registry.yarnpkg.com/offline-plugin/-/offline-plugin-5.0.7.tgz#26936ad1a7699f4d67e0a095a258972a4ccf1788"
7677+
integrity sha512-ArMFt4QFjK0wg8B5+R/6tt65u6Dk+Pkx4PAcW5O7mgIF3ywMepaQqFOQgfZD4ybanuGwuJihxUwMRgkzd+YGYw==
7678+
dependencies:
7679+
deep-extend "^0.5.1"
7680+
ejs "^2.3.4"
7681+
loader-utils "0.2.x"
7682+
minimatch "^3.0.3"
7683+
slash "^1.0.0"
7684+
76697685
on-finished@~2.3.0:
76707686
version "2.3.0"
76717687
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"

0 commit comments

Comments
 (0)