From 8d502f82cc5e1abdae70b4b868f3cf52b886e3b8 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Sun, 10 Oct 2021 12:57:43 -0400 Subject: [PATCH 1/6] Try using cache plugin --- gridsome.config.js | 3 +++ package.json | 1 + yarn.lock | 7 +++++++ 3 files changed, 11 insertions(+) diff --git a/gridsome.config.js b/gridsome.config.js index ac1a821eb4..033076a217 100644 --- a/gridsome.config.js +++ b/gridsome.config.js @@ -36,6 +36,9 @@ function mkTemplates(collections) { function mkPlugins(collections) { // Path globbing rules: https://www.npmjs.com/package/globby#user-content-globbing-patterns let plugins = [ + { + use: "@national-digital/gridsome-plugin-keep-processed-images", + }, { use: "@gridsome/source-filesystem", options: { diff --git a/package.json b/package.json index 3578e0a91c..703b989d09 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@gridsome/source-filesystem": "^0.6.2", "@gridsome/transformer-remark": "^0.6.4", "@gridsome/vue-remark": "^0.2.6", + "@national-digital/gridsome-plugin-keep-processed-images": "^1.0.3", "axios": "^0.21.4", "bootstrap": "<5.0", "bootstrap-vue": "^2.21.2", diff --git a/yarn.lock b/yarn.lock index 0c2f139c00..724daeba94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1243,6 +1243,13 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" +"@national-digital/gridsome-plugin-keep-processed-images@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@national-digital/gridsome-plugin-keep-processed-images/-/gridsome-plugin-keep-processed-images-1.0.3.tgz#8abd0128f72ca7e8db258051969f9cdd58ce527c" + integrity sha512-5VbqSBaad+i4qrbuA1f4DxlblI6fEqQolnUvkeYAIO/I+MuMFxRoH/bWSpLVZzFCMTTxNNZz4RqIPy5ZhVqn9A== + dependencies: + fs-extra "^7.0.1" + "@nodelib/fs.scandir@2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" From 9e29074a32c74d458684315597425feeaa53e10f Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Sun, 10 Oct 2021 13:18:16 -0400 Subject: [PATCH 2/6] Manually add hooks instead of using plugin --- gridsome.server.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gridsome.server.js b/gridsome.server.js index 40dfda31d9..12c2c39203 100644 --- a/gridsome.server.js +++ b/gridsome.server.js @@ -275,6 +275,12 @@ module.exports = function (api) { }); }); + api.beforeBuild(async () => { + // Stage in cached images if they exist. + console.log("Stage in cached images from imageCacheDir") + moveFiles(`${api.config.imageCacheDir}/`, api.config.imagesDir); + }); + api.afterBuild(async () => { // Write all Platforms to /use/feed.json. let outDir = path.join(__dirname, "dist", "use"); @@ -283,9 +289,24 @@ module.exports = function (api) { fs.writeFile(feedPath, makePlatformsJson(platformsData), (error) => { if (error) throw error; }); + // Copy out compiled images. + console.log("Cache images from build to imageCacheDir") + copyFiles(api.config.imagesDir, `${api.config.imageCacheDir}/`); }); }; +async function copyFiles(source, dest) { + try { + await fs.copy(source, dest); + } catch (err) {} +} + +async function moveFiles(source, dest) { + try { + await fs.move(source, dest); + } catch (err) {} +} + function makePlatformsJson(platformsData) { let platforms = platformsData.data.platforms.edges.map((edge) => { // Massage fields a little for backward compatibility. From 71f5f7e7b2de8dba345d0b680d991a9b1ca02566 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Sun, 10 Oct 2021 13:18:22 -0400 Subject: [PATCH 3/6] Revert "Try using cache plugin" This reverts commit 8d502f82cc5e1abdae70b4b868f3cf52b886e3b8. --- gridsome.config.js | 3 --- package.json | 1 - yarn.lock | 7 ------- 3 files changed, 11 deletions(-) diff --git a/gridsome.config.js b/gridsome.config.js index 033076a217..ac1a821eb4 100644 --- a/gridsome.config.js +++ b/gridsome.config.js @@ -36,9 +36,6 @@ function mkTemplates(collections) { function mkPlugins(collections) { // Path globbing rules: https://www.npmjs.com/package/globby#user-content-globbing-patterns let plugins = [ - { - use: "@national-digital/gridsome-plugin-keep-processed-images", - }, { use: "@gridsome/source-filesystem", options: { diff --git a/package.json b/package.json index 703b989d09..3578e0a91c 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "@gridsome/source-filesystem": "^0.6.2", "@gridsome/transformer-remark": "^0.6.4", "@gridsome/vue-remark": "^0.2.6", - "@national-digital/gridsome-plugin-keep-processed-images": "^1.0.3", "axios": "^0.21.4", "bootstrap": "<5.0", "bootstrap-vue": "^2.21.2", diff --git a/yarn.lock b/yarn.lock index 724daeba94..0c2f139c00 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1243,13 +1243,6 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@national-digital/gridsome-plugin-keep-processed-images@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@national-digital/gridsome-plugin-keep-processed-images/-/gridsome-plugin-keep-processed-images-1.0.3.tgz#8abd0128f72ca7e8db258051969f9cdd58ce527c" - integrity sha512-5VbqSBaad+i4qrbuA1f4DxlblI6fEqQolnUvkeYAIO/I+MuMFxRoH/bWSpLVZzFCMTTxNNZz4RqIPy5ZhVqn9A== - dependencies: - fs-extra "^7.0.1" - "@nodelib/fs.scandir@2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" From a1b0c4cdb66f923b97172428f451d5af3ff2ff49 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Sun, 10 Oct 2021 13:43:34 -0400 Subject: [PATCH 4/6] More verbose staging output --- gridsome.server.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gridsome.server.js b/gridsome.server.js index 12c2c39203..9c81d277e0 100644 --- a/gridsome.server.js +++ b/gridsome.server.js @@ -278,6 +278,7 @@ module.exports = function (api) { api.beforeBuild(async () => { // Stage in cached images if they exist. console.log("Stage in cached images from imageCacheDir") + console.log(`Moving from '${api.config.imageCacheDir}/ to '${api.config.imagesDir}'`) moveFiles(`${api.config.imageCacheDir}/`, api.config.imagesDir); }); @@ -291,6 +292,7 @@ module.exports = function (api) { }); // Copy out compiled images. console.log("Cache images from build to imageCacheDir") + console.log(`Copying from '${api.config.imagesDir}' to '${api.config.imageCacheDir}/'`) copyFiles(api.config.imagesDir, `${api.config.imageCacheDir}/`); }); }; @@ -298,13 +300,17 @@ module.exports = function (api) { async function copyFiles(source, dest) { try { await fs.copy(source, dest); - } catch (err) {} + } catch (err) { + console.error(err); + } } async function moveFiles(source, dest) { try { await fs.move(source, dest); - } catch (err) {} + } catch (err) { + console.error(err); + } } function makePlatformsJson(platformsData) { From 21d7371a3d4145c19cadc0e542bbdaed7e79934e Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Sun, 10 Oct 2021 13:44:13 -0400 Subject: [PATCH 5/6] Explicitly add and use fs-extra --- gridsome.server.js | 2 +- package.json | 1 + yarn.lock | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gridsome.server.js b/gridsome.server.js index 9c81d277e0..91d9d25f5e 100644 --- a/gridsome.server.js +++ b/gridsome.server.js @@ -5,7 +5,7 @@ // Changes here require a server restart. // To restart press CTRL + C in terminal and run `gridsome develop` -const fs = require("fs"); +const fs = require("fs-extra"); const path = require("path"); const dayjs = require("dayjs"); const { imageType } = require("gridsome/lib/graphql/types/image"); diff --git a/package.json b/package.json index 3578e0a91c..384e31d11b 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "bootstrap-vue": "^2.21.2", "commander": "^8.2.0", "dayjs": "^1.10.7", + "fs-extra": "^10.0.0", "gridsome": "^0.7.0", "jiti": "^1.12.0", "node-watch": "^0.7.1", diff --git a/yarn.lock b/yarn.lock index 0c2f139c00..25739cf586 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5269,6 +5269,15 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" From 74ca932ee339f14956b31fa1d03f71dbb57bae59 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Sun, 10 Oct 2021 14:02:31 -0400 Subject: [PATCH 6/6] Overwrite build staging into dist from cache, merging assets --- gridsome.server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gridsome.server.js b/gridsome.server.js index 91d9d25f5e..6552f3065a 100644 --- a/gridsome.server.js +++ b/gridsome.server.js @@ -307,7 +307,7 @@ async function copyFiles(source, dest) { async function moveFiles(source, dest) { try { - await fs.move(source, dest); + await fs.move(source, dest, {overwrite: true}); } catch (err) { console.error(err); }