From ed7c887c1a6fd089277d6f83d0b3af16c0db28d6 Mon Sep 17 00:00:00 2001 From: Kai Friedrich Date: Fri, 12 Jun 2020 01:08:06 +0200 Subject: [PATCH 1/3] fix(sw): versioned import of idb-keyval with the version included it is ok to cache it immutable alongside the other fingerprinted js files produced by Gatsby --- packages/gatsby-plugin-offline/src/gatsby-node.js | 10 ++++++++-- packages/gatsby-plugin-offline/src/sw-append.js | 4 ---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/gatsby-plugin-offline/src/gatsby-node.js b/packages/gatsby-plugin-offline/src/gatsby-node.js index 1f5aa3981d620..f419d526916b6 100644 --- a/packages/gatsby-plugin-offline/src/gatsby-node.js +++ b/packages/gatsby-plugin-offline/src/gatsby-node.js @@ -162,7 +162,8 @@ exports.onPostBuild = ( const idbKeyvalFile = `idb-keyval-iife.min.js` const idbKeyvalSource = require.resolve(`idb-keyval/dist/${idbKeyvalFile}`) - const idbKeyvalDest = `public/${idbKeyvalFile}` + const idbKeyValVersioned = `idb-keyval-${require("idb-keyval/package.json").version}-iife.min.js` + const idbKeyvalDest = `public/${idbKeyValVersioned}` fs.createReadStream(idbKeyvalSource).pipe(fs.createWriteStream(idbKeyvalDest)) const swDest = `public/sw.js` @@ -180,8 +181,13 @@ exports.onPostBuild = ( ) fs.writeFileSync(swDest, swText) } + + const prependIdbKeyValVersionedImport = [ + `/* global importScripts, workbox, idbKeyval */`, + `importScripts(\`${idbKeyValVersioned}\`)`, + ].join(`\n\n`) + `\n\n` - const swAppend = fs + const swAppend = prependIdbKeyValVersionedImport + fs .readFileSync(`${__dirname}/sw-append.js`, `utf8`) .replace(/%pathPrefix%/g, pathPrefix) .replace(/%appFile%/g, appFile) diff --git a/packages/gatsby-plugin-offline/src/sw-append.js b/packages/gatsby-plugin-offline/src/sw-append.js index 683d24b1d64e2..b558a68f03f15 100644 --- a/packages/gatsby-plugin-offline/src/sw-append.js +++ b/packages/gatsby-plugin-offline/src/sw-append.js @@ -1,7 +1,3 @@ -/* global importScripts, workbox, idbKeyval */ - -importScripts(`idb-keyval-iife.min.js`) - const { NavigationRoute } = workbox.routing let lastNavigationRequest = null From 428a003509d22cbdec8567efb758a5b5b52dbdab Mon Sep 17 00:00:00 2001 From: nibtime Date: Sat, 13 Jun 2020 19:50:50 +0000 Subject: [PATCH 2/3] style: fix linting errors --- .../gatsby-plugin-offline/src/gatsby-node.js | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/packages/gatsby-plugin-offline/src/gatsby-node.js b/packages/gatsby-plugin-offline/src/gatsby-node.js index f419d526916b6..8edbf354563a7 100644 --- a/packages/gatsby-plugin-offline/src/gatsby-node.js +++ b/packages/gatsby-plugin-offline/src/gatsby-node.js @@ -162,7 +162,9 @@ exports.onPostBuild = ( const idbKeyvalFile = `idb-keyval-iife.min.js` const idbKeyvalSource = require.resolve(`idb-keyval/dist/${idbKeyvalFile}`) - const idbKeyValVersioned = `idb-keyval-${require("idb-keyval/package.json").version}-iife.min.js` + const idbKeyValVersioned = `idb-keyval-${ + require(`idb-keyval/package.json`).version + }-iife.min.js` const idbKeyvalDest = `public/${idbKeyValVersioned}` fs.createReadStream(idbKeyvalSource).pipe(fs.createWriteStream(idbKeyvalDest)) @@ -181,16 +183,19 @@ exports.onPostBuild = ( ) fs.writeFileSync(swDest, swText) } - - const prependIdbKeyValVersionedImport = [ - `/* global importScripts, workbox, idbKeyval */`, - `importScripts(\`${idbKeyValVersioned}\`)`, - ].join(`\n\n`) + `\n\n` - - const swAppend = prependIdbKeyValVersionedImport + fs - .readFileSync(`${__dirname}/sw-append.js`, `utf8`) - .replace(/%pathPrefix%/g, pathPrefix) - .replace(/%appFile%/g, appFile) + + const prependIdbKeyValVersionedImport = + [ + `/* global importScripts, workbox, idbKeyval */`, + `importScripts(\`${idbKeyValVersioned}\`)`, + ].join(`\n\n`) + `\n\n` + + const swAppend = + prependIdbKeyValVersionedImport + + fs + .readFileSync(`${__dirname}/sw-append.js`, `utf8`) + .replace(/%pathPrefix%/g, pathPrefix) + .replace(/%appFile%/g, appFile) fs.appendFileSync(`public/sw.js`, `\n` + swAppend) From 0cc3df6a49e3761332fa01cc85ecd501f6249c05 Mon Sep 17 00:00:00 2001 From: nibtime Date: Tue, 16 Jun 2020 13:50:16 +0000 Subject: [PATCH 3/3] fix(sw): replace versioned import in sw-append.js --- .../gatsby-plugin-offline/src/gatsby-node.js | 22 ++++++------------- .../gatsby-plugin-offline/src/sw-append.js | 3 +++ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/packages/gatsby-plugin-offline/src/gatsby-node.js b/packages/gatsby-plugin-offline/src/gatsby-node.js index 8edbf354563a7..ed4ded9be8538 100644 --- a/packages/gatsby-plugin-offline/src/gatsby-node.js +++ b/packages/gatsby-plugin-offline/src/gatsby-node.js @@ -162,9 +162,8 @@ exports.onPostBuild = ( const idbKeyvalFile = `idb-keyval-iife.min.js` const idbKeyvalSource = require.resolve(`idb-keyval/dist/${idbKeyvalFile}`) - const idbKeyValVersioned = `idb-keyval-${ - require(`idb-keyval/package.json`).version - }-iife.min.js` + const idbKeyvalPackageJson = require(`idb-keyval/package.json`) + const idbKeyValVersioned = `idb-keyval-${idbKeyvalPackageJson.version}-iife.min.js` const idbKeyvalDest = `public/${idbKeyValVersioned}` fs.createReadStream(idbKeyvalSource).pipe(fs.createWriteStream(idbKeyvalDest)) @@ -184,18 +183,11 @@ exports.onPostBuild = ( fs.writeFileSync(swDest, swText) } - const prependIdbKeyValVersionedImport = - [ - `/* global importScripts, workbox, idbKeyval */`, - `importScripts(\`${idbKeyValVersioned}\`)`, - ].join(`\n\n`) + `\n\n` - - const swAppend = - prependIdbKeyValVersionedImport + - fs - .readFileSync(`${__dirname}/sw-append.js`, `utf8`) - .replace(/%pathPrefix%/g, pathPrefix) - .replace(/%appFile%/g, appFile) + const swAppend = fs + .readFileSync(`${__dirname}/sw-append.js`, `utf8`) + .replace(/%idbKeyValVersioned%/g, idbKeyValVersioned) + .replace(/%pathPrefix%/g, pathPrefix) + .replace(/%appFile%/g, appFile) fs.appendFileSync(`public/sw.js`, `\n` + swAppend) diff --git a/packages/gatsby-plugin-offline/src/sw-append.js b/packages/gatsby-plugin-offline/src/sw-append.js index b558a68f03f15..df7a37c4ab01e 100644 --- a/packages/gatsby-plugin-offline/src/sw-append.js +++ b/packages/gatsby-plugin-offline/src/sw-append.js @@ -1,3 +1,6 @@ +/* global importScripts, workbox, idbKeyval */ +importScripts(`%idbKeyValVersioned%`) + const { NavigationRoute } = workbox.routing let lastNavigationRequest = null