|
@@ -69,7 +69,7 @@ plugins: [
|
|
|
...
|
|
|
````
|
|
|
|
|
|
-### build with webpack
|
|
|
+### build service worker with webpack
|
|
|
````
|
|
|
// webpack.config.js
|
|
|
const InjectAssetsPlugin = require('@mightyplow/inject-assets-webpack-plugin');
|
|
@@ -77,13 +77,29 @@ const InjectAssetsPlugin = require('@mightyplow/inject-assets-webpack-plugin');
|
|
|
...
|
|
|
|
|
|
entry: {
|
|
|
+ // build the app and the service worker with webpack
|
|
|
+ app: path.join(__dirname, 'src', 'index.js'),
|
|
|
serviceWorker: path.join(__dirname, 'src', 'serviceWorker.js')
|
|
|
},
|
|
|
|
|
|
plugins: [
|
|
|
new InjectAssetsPlugin({
|
|
|
- targets: ['serviceWorker']
|
|
|
+ // replace assets in the service worker and in the app script
|
|
|
+ targets: ['serviceWorker', 'app']
|
|
|
})
|
|
|
]
|
|
|
...
|
|
|
````
|
|
|
+
|
|
|
+````
|
|
|
+// index.js
|
|
|
+
|
|
|
+if ('serviceWorker' in navigator) {
|
|
|
+ // {{serviceWorker}} will be replaced with the built file name
|
|
|
+ navigator.serviceWorker.register('{{serviceWorker}}')
|
|
|
+ .then((registration) => {
|
|
|
+ console.info('service worker registered');
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+````
|