chore(frontend): update webpack config (remove realfavicon-gen)
This commit is contained in:
parent
d773906343
commit
8f52c848e8
@ -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;
|
||||
Loading…
Reference in New Issue
Block a user