diff --git a/webpack.config.js b/webpack.config.js index d4c18129f..636e7f61d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -20,7 +20,6 @@ import TerserPlugin from 'terser-webpack-plugin'; import yaml from 'js-yaml'; import postcssPresetEnv from 'postcss-preset-env'; import RemovePlugin from 'remove-files-webpack-plugin'; -import RealFaviconPlugin from 'real-favicon-webpack-plugin'; import crypto from 'crypto'; // import { version as webpackVersion } from 'webpack/package.json' assert { type: 'json' }; // version.split('.').slice(0, 2).join('.'); @@ -31,21 +30,9 @@ const webpackVersion = webpackJson.version.split('.').slice(0, 2).join('.'); import packageJson from './package.json' assert { type: "json" }; const packageVersion = packageJson.version; -import faviconJson from './config/favicon.json' assert { type: 'json' }; - async function webpackConfig() { const wellKnownCacheDir = resolve('.cache/well-known'); const assetsDirectory = resolve('assets'); - let faviconApiVersion = undefined; - - if (!fs.existsSync(wellKnownCacheDir)) { - try { - const faviconApiChangelog = await axios.get('https://realfavicongenerator.net/api/versions'); - faviconApiVersion = faviconApiChangelog.data.filter(vObj => vObj.relevance.automated_update).slice(-1)[0].version; - } catch(e) { - console.error(e); - } - } return { module: { @@ -142,6 +129,7 @@ async function webpackConfig() { new webpack.DefinePlugin({ VERSION: JSON.stringify(packageVersion) }), + /* TODO: deprecated due to removal of online favicon generation; is this still needed? ...(() => { const langs = new Set(); function findLangs(json) { @@ -201,68 +189,28 @@ async function webpackConfig() { console.error(e); } - if (faviconApiVersion) { - cacheHash.update(faviconApiVersion); - } const versionDigest = cacheHash.digest('hex'); return Array.from(langs).map(lang => { - const faviconConfig = { versioning: { param_name: 'v', param_value: versionDigest.substr(0,10) }, ...langJsons[lang] }; + const tmpobj = tmp.fileSync({ postfix: ".json" }); + fs.writeSync(tmpobj.fd, JSON.stringify(faviconConfig)); + fs.close(tmpobj.fd); - const cacheDirectory = resolve('.well-known-cache', `${cacheDigest}-${lang}`); - - if (fs.existsSync(wellKnownCacheDir)) { - console.log("Using favicons generated by nix"); - return [ - new CopyPlugin({ - patterns: [ - { from: resolve(wellKnownCacheDir, lang), to: resolve('well-known', lang) } - ] + return [ + new CopyPlugin({ + patterns: [ + { from: 'config/robots.txt', to: resolve('well-known', lang, 'robots.txt') }, + ] + }), + { apply: compiler => compiler.hooks.afterEmit.tap('AfterEmitPlugin', compilation => { + const imgFiles = globSync(resolve('well-known', lang) + '/*.@(png)'); + const imgFilesArgs = Array.from(imgFiles).join(" "); + execSync(`exiftool -overwrite_original -all= ${imgFilesArgs}`, { stdio: 'inherit' }); }) - ]; - } else if (fs.existsSync(cacheDirectory) && (!faviconApiVersion || faviconApiVersion === cachedVersion)) { - console.log(`Using cached well-known from ${cacheDirectory} for ${lang}`); - return [ - new CopyPlugin({ - patterns: [ - { from: cacheDirectory, to: resolve('well-known', lang) } - ] - }) - ]; - } else { - const tmpobj = tmp.fileSync({ postfix: ".json" }); - fs.writeSync(tmpobj.fd, JSON.stringify(faviconConfig)); - fs.close(tmpobj.fd); - - return [ - new RealFaviconPlugin({ - faviconJson: relative(".", tmpobj.name), - outputPath: resolve('well-known', lang), - inject: false - }), - new CopyPlugin({ - patterns: [ - { from: 'config/robots.txt', to: resolve('well-known', lang, 'robots.txt') }, - ] - }), - { apply: compiler => compiler.hooks.afterEmit.tap('AfterEmitPlugin', compilation => { - const imgFiles = globSync(resolve('well-known', lang) + '/*.@(png)'); - const imgFilesArgs = Array.from(imgFiles).join(" "); - execSync(`exiftool -overwrite_original -all= ${imgFilesArgs}`, { stdio: 'inherit' }); - }) - }, - { apply: compiler => compiler.hooks.afterEmit.tap('AfterEmitPlugin', compilation => { - fs.ensureDirSync('.well-known-cache'); - fs.copySync(resolve('well-known', lang), cacheDirectory); - if (!fs.existsSync(versionFile)) { - fs.writeFileSync(versionFile, faviconApiVersion, { encoding: 'utf8' }); - } - }) - } - ]; - } + } + ]; }).flat(1); - })() + })() */ ], output: { @@ -303,4 +251,4 @@ async function webpackConfig() { }; } -export default webpackConfig; +export default webpackConfig; \ No newline at end of file