From 78cf568988c4a01068702abaac6d68f12c83ed63 Mon Sep 17 00:00:00 2001 From: chee Date: Tue, 29 Aug 2017 00:25:34 +0100 Subject: [PATCH 1/4] have the service-worker precache files in public/ --- packages/react-scripts/config/webpack.config.prod.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 44964346107..1d6cb58b0d4 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -343,6 +343,10 @@ module.exports = { navigateFallbackWhitelist: [/^(?!\/__).*/], // Don't precache sourcemaps (they're large) and build asset manifest: staticFileGlobsIgnorePatterns: [/\.map$/, /asset-manifest\.json$/], + // Precache files in public/, and allow them to be accessed directly + staticFileGlobs: ['./public/**/*'], + mergeStaticsConfig: true, + stripPrefix: './public', }), // Moment.js is an extremely popular library that bundles large locale files // by default due to how Webpack interprets its code. This is a practical From 60145f9d94872f019f14376e3688be40f4849682 Mon Sep 17 00:00:00 2001 From: chee Date: Tue, 29 Aug 2017 09:47:16 +0100 Subject: [PATCH 2/4] use appPublic from `paths` for staticFileGlobs --- packages/react-scripts/config/webpack.config.prod.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 1d6cb58b0d4..2a9a1e2062c 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -344,9 +344,9 @@ module.exports = { // Don't precache sourcemaps (they're large) and build asset manifest: staticFileGlobsIgnorePatterns: [/\.map$/, /asset-manifest\.json$/], // Precache files in public/, and allow them to be accessed directly - staticFileGlobs: ['./public/**/*'], + staticFileGlobs: [paths.appPublic + '/**/*'], mergeStaticsConfig: true, - stripPrefix: './public', + stripPrefix: paths.appPublic, }), // Moment.js is an extremely popular library that bundles large locale files // by default due to how Webpack interprets its code. This is a practical From f2b3fa3047b1785d8195e0bddb7b53308d04b8f0 Mon Sep 17 00:00:00 2001 From: chee Date: Tue, 19 Sep 2017 11:20:56 +0100 Subject: [PATCH 3/4] precache only html files in public/ --- packages/react-scripts/config/webpack.config.prod.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 2a9a1e2062c..b0210acc13f 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -343,8 +343,8 @@ module.exports = { navigateFallbackWhitelist: [/^(?!\/__).*/], // Don't precache sourcemaps (they're large) and build asset manifest: staticFileGlobsIgnorePatterns: [/\.map$/, /asset-manifest\.json$/], - // Precache files in public/, and allow them to be accessed directly - staticFileGlobs: [paths.appPublic + '/**/*'], + // Precache likely navigation targets in public/ + staticFileGlobs: [paths.appPublic + '/**/*.html'], mergeStaticsConfig: true, stripPrefix: paths.appPublic, }), From 30ba7460f6e75266d28d570e9c31e60446787ffc Mon Sep 17 00:00:00 2001 From: chee Date: Wed, 4 Oct 2017 19:02:11 +0100 Subject: [PATCH 4/4] disable sw-precache's navigateFallback --- packages/react-scripts/config/webpack.config.prod.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index b0210acc13f..47acb14815b 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -336,17 +336,8 @@ module.exports = { console.log(message); }, minify: true, - // For unknown URLs, fallback to the index page - navigateFallback: publicUrl + '/index.html', - // Ignores URLs starting from /__ (useful for Firebase): - // https://github.com/facebookincubator/create-react-app/issues/2237#issuecomment-302693219 - navigateFallbackWhitelist: [/^(?!\/__).*/], - // Don't precache sourcemaps (they're large) and build asset manifest: + // Don't precache sourcemaps (they're large), or build asset manifest: staticFileGlobsIgnorePatterns: [/\.map$/, /asset-manifest\.json$/], - // Precache likely navigation targets in public/ - staticFileGlobs: [paths.appPublic + '/**/*.html'], - mergeStaticsConfig: true, - stripPrefix: paths.appPublic, }), // Moment.js is an extremely popular library that bundles large locale files // by default due to how Webpack interprets its code. This is a practical