From 5fae14a2bfa46e69a4c021d33fe70de11fd01e45 Mon Sep 17 00:00:00 2001 From: Endilie Yacop Sucipto Date: Sat, 4 Aug 2018 22:40:36 +0800 Subject: [PATCH] fix: copy static image as it is if image compression fail (#887) * fix: fail to copy static image due to image compression on build * add changelog --- CHANGELOG.md | 1 + lib/server/generate.js | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4bfb3d046..44ebbf3901 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ Thank you to the following contributors who helped with this release: - Docusaurus own search will now search the docs in the correct language & version [\#859](https://github.com/facebook/Docusaurus/pull/859) - Fix phrase emphasis not italicized [\#850](https://github.com/facebook/Docusaurus/pull/850) - Blogpost summary for blog feed is now properly truncated [\#880](https://github.com/facebook/Docusaurus/pull/880) +- Fix failure to copy static image if image compression fail [\#887](https://github.com/facebook/Docusaurus/pull/887) **Chore and Maintenance** - Remove unused files [\#881](https://github.com/facebook/Docusaurus/pull/881) diff --git a/lib/server/generate.js b/lib/server/generate.js index 8f4e702d7c..fd0710db0c 100644 --- a/lib/server/generate.js +++ b/lib/server/generate.js @@ -247,11 +247,9 @@ async function execute() { !commander.skipImageCompression ) { const parts = normalizedFile.split(`${sep}static${sep}`); - const targetDirectory = join( - buildDir, - parts[1].substring(0, parts[1].lastIndexOf(sep)) - ); - mkdirp.sync(path.dirname(targetDirectory)); + const targetFile = join(buildDir, parts[1]); + const targetDirectory = path.dirname(targetFile); + mkdirp.sync(targetDirectory); imagemin([normalizedFile], targetDirectory, { use: [ imageminOptipng(), @@ -261,6 +259,10 @@ async function execute() { }), imageminGifsicle(), ], + }).catch(error => { + // if image compression fail, just copy it as it is + console.error(error); + fs.copySync(normalizedFile, targetFile); }); } else if (!fs.lstatSync(normalizedFile).isDirectory()) { const parts = normalizedFile.split(`${sep}static${sep}`);