1
1
module . exports = ( api , options ) => {
2
2
api . chainWebpack ( webpackConfig => {
3
3
const name = api . service . pkg . name
4
-
5
4
const userOptions = options . pwa || { }
6
5
7
6
// the pwa plugin hooks on to html-webpack-plugin
@@ -17,24 +16,27 @@ module.exports = (api, options) => {
17
16
// Default to GenerateSW mode, though InjectManifest also might be used.
18
17
const workboxPluginMode = userOptions . workboxPluginMode || 'GenerateSW'
19
18
const workboxWebpackModule = require ( 'workbox-webpack-plugin' )
20
- if ( workboxPluginMode in workboxWebpackModule ) {
21
- const workBoxConfig = Object . assign ( {
22
- cacheId : name ,
23
- exclude : [
24
- new RegExp ( '\.map$' ) ,
25
- new RegExp ( 'img/icons/' ) ,
26
- new RegExp ( 'favicon\.ico$' ) ,
27
- new RegExp ( 'manifest\.json$' )
28
- ]
29
- } , userOptions . workboxOptions )
30
19
31
- webpackConfig
32
- . plugin ( 'workbox' )
33
- . use ( workboxWebpackModule [ workboxPluginMode ] , [ workBoxConfig ] )
34
- } else {
35
- throw new Error ( `${ workboxPluginMode } is not a supported Workbox webpack plugin mode. ` +
36
- `Valid modes are: ${ Object . keys ( workboxWebpackModule ) . join ( ', ' ) } ` )
20
+ if ( ! ( workboxPluginMode in workboxWebpackModule ) ) {
21
+ throw new Error (
22
+ `${ workboxPluginMode } is not a supported Workbox webpack plugin mode. ` +
23
+ `Valid modes are: ${ Object . keys ( workboxWebpackModule ) . join ( ', ' ) } `
24
+ )
37
25
}
26
+
27
+ const workBoxConfig = Object . assign ( {
28
+ cacheId : name ,
29
+ exclude : [
30
+ / \. m a p $ / ,
31
+ / i m g \/ i c o n s \/ / ,
32
+ / f a v i c o n \. i c o $ / ,
33
+ / m a n i f e s t \. j s o n $ /
34
+ ]
35
+ } , userOptions . workboxOptions )
36
+
37
+ webpackConfig
38
+ . plugin ( 'workbox' )
39
+ . use ( workboxWebpackModule [ workboxPluginMode ] , [ workBoxConfig ] )
38
40
}
39
41
} )
40
42
0 commit comments