From 5f0b8cab532171090df41de24a5ea04070f75acb Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Thu, 9 Jan 2020 13:22:16 +0100
Subject: [PATCH] Better exclusion for non-critical assets caching in service
 worker

---
 front/src/service-worker.js | 12 +-----------
 front/vue.config.js         |  6 ++++++
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/front/src/service-worker.js b/front/src/service-worker.js
index c1bc1804d0..92b1ab33d1 100644
--- a/front/src/service-worker.js
+++ b/front/src/service-worker.js
@@ -24,17 +24,7 @@ workbox.core.clientsClaim();
 
 // The precaching code provided by Workbox.
 self.__precacheManifest = [].concat(self.__precacheManifest || []);
-console.log('[sw] Files to be cached [before filtering]', self.__precacheManifest.length);
-var excludedUrlsPrefix = [
-  '/js/locale-',
-  '/js/moment-locale-',
-  '/js/admin',
-  '/css/admin',
-];
-self.__precacheManifest = self.__precacheManifest.filter((e) => {
-  return !excludedUrlsPrefix.some(prefix => e.url.startsWith(prefix))
-});
-console.log('[sw] Files to be cached [after filtering]', self.__precacheManifest.length);
+
 // workbox.precaching.suppressWarnings(); // Only used with Vue CLI 3 and Workbox v3.
 workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
 
diff --git a/front/vue.config.js b/front/vue.config.js
index 994a78ff5a..8ee1b27e8e 100644
--- a/front/vue.config.js
+++ b/front/vue.config.js
@@ -63,6 +63,12 @@ module.exports = {
       // swSrc is required in InjectManifest mode.
       swSrc: 'src/service-worker.js',
       swDest: 'service-worker.js',
+      exclude: [
+        new RegExp('js/locale.*'),
+        new RegExp('js/moment-locale.*'),
+        new RegExp('js/admin.*'),
+        new RegExp('css/admin.*'),
+      ]
     },
     iconPaths: {
       favicon32: 'favicon.png',
-- 
GitLab