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 yaml from 'js-yaml';
|
||||||
import postcssPresetEnv from 'postcss-preset-env';
|
import postcssPresetEnv from 'postcss-preset-env';
|
||||||
import RemovePlugin from 'remove-files-webpack-plugin';
|
import RemovePlugin from 'remove-files-webpack-plugin';
|
||||||
import RealFaviconPlugin from 'real-favicon-webpack-plugin';
|
|
||||||
import crypto from 'crypto';
|
import crypto from 'crypto';
|
||||||
|
|
||||||
// import { version as webpackVersion } from 'webpack/package.json' assert { type: 'json' }; // version.split('.').slice(0, 2).join('.');
|
// 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" };
|
import packageJson from './package.json' assert { type: "json" };
|
||||||
const packageVersion = packageJson.version;
|
const packageVersion = packageJson.version;
|
||||||
|
|
||||||
import faviconJson from './config/favicon.json' assert { type: 'json' };
|
|
||||||
|
|
||||||
async function webpackConfig() {
|
async function webpackConfig() {
|
||||||
const wellKnownCacheDir = resolve('.cache/well-known');
|
const wellKnownCacheDir = resolve('.cache/well-known');
|
||||||
const assetsDirectory = resolve('assets');
|
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 {
|
return {
|
||||||
module: {
|
module: {
|
||||||
@ -142,6 +129,7 @@ async function webpackConfig() {
|
|||||||
new webpack.DefinePlugin({
|
new webpack.DefinePlugin({
|
||||||
VERSION: JSON.stringify(packageVersion)
|
VERSION: JSON.stringify(packageVersion)
|
||||||
}),
|
}),
|
||||||
|
/* TODO: deprecated due to removal of online favicon generation; is this still needed?
|
||||||
...(() => {
|
...(() => {
|
||||||
const langs = new Set();
|
const langs = new Set();
|
||||||
function findLangs(json) {
|
function findLangs(json) {
|
||||||
@ -201,68 +189,28 @@ async function webpackConfig() {
|
|||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (faviconApiVersion) {
|
|
||||||
cacheHash.update(faviconApiVersion);
|
|
||||||
}
|
|
||||||
const versionDigest = cacheHash.digest('hex');
|
const versionDigest = cacheHash.digest('hex');
|
||||||
|
|
||||||
return Array.from(langs).map(lang => {
|
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}`);
|
return [
|
||||||
|
new CopyPlugin({
|
||||||
if (fs.existsSync(wellKnownCacheDir)) {
|
patterns: [
|
||||||
console.log("Using favicons generated by nix");
|
{ from: 'config/robots.txt', to: resolve('well-known', lang, 'robots.txt') },
|
||||||
return [
|
]
|
||||||
new CopyPlugin({
|
}),
|
||||||
patterns: [
|
{ apply: compiler => compiler.hooks.afterEmit.tap('AfterEmitPlugin', compilation => {
|
||||||
{ from: resolve(wellKnownCacheDir, lang), to: resolve('well-known', lang) }
|
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);
|
}).flat(1);
|
||||||
})()
|
})() */
|
||||||
],
|
],
|
||||||
|
|
||||||
output: {
|
output: {
|
||||||
@ -303,4 +251,4 @@ async function webpackConfig() {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default webpackConfig;
|
export default webpackConfig;
|
||||||
Loading…
Reference in New Issue
Block a user