chore(webpack): update webpack config for major node and npm update
This commit is contained in:
parent
b4a59f6b02
commit
ae235bf269
@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2022-2024 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Sarah Vaupel <sarah.vaupel@ifi.lmu.de>,Sarah Vaupel <vaupel.sarah@campus.lmu.de>,David Mosbach <david.mosbach@uniworx.de>
|
// SPDX-FileCopyrightText: 2022-2024 Sarah Vaupel <sarah.vaupel@uniworx.de>, Gregor Kleen <gregor.kleen@ifi.lmu.de>, Sarah Vaupel <sarah.vaupel@ifi.lmu.de>, Sarah Vaupel <vaupel.sarah@campus.lmu.de>, David Mosbach <david.mosbach@uniworx.de>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -9,10 +9,10 @@ tmp.setGracefulCleanup();
|
|||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
const { execSync } = require('child_process');
|
const { execSync } = require('child_process');
|
||||||
const request = require('request-promise');
|
const axios = require('axios');
|
||||||
|
|
||||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||||
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
|
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
||||||
const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
|
const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
|
||||||
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
||||||
const CopyPlugin = require('copy-webpack-plugin');
|
const CopyPlugin = require('copy-webpack-plugin');
|
||||||
@ -27,25 +27,19 @@ const webpackVersion = require('webpack/package.json').version.split('.').slice(
|
|||||||
const packageVersion = require('./package.json').version;
|
const packageVersion = require('./package.json').version;
|
||||||
|
|
||||||
async function webpackConfig() {
|
async function webpackConfig() {
|
||||||
const faviconNixDirectory = path.resolve(__dirname, '.nix-well-known');
|
const wellKnownCacheDir = path.resolve(__dirname, '.well-known-cache');
|
||||||
const assetsDirectory = path.resolve(__dirname, 'assets');
|
const assetsDirectory = path.resolve(__dirname, 'assets');
|
||||||
let faviconApiVersion = undefined;
|
let faviconApiVersion = undefined;
|
||||||
|
|
||||||
if (!fs.existsSync(faviconNixDirectory)) {
|
// FIXME: fetching current favicon api version broken right now (needs adaptation to axios)
|
||||||
try {
|
// if (!fs.existsSync(wellKnownCacheDir)) {
|
||||||
const faviconApiChangelog = await request({
|
// try {
|
||||||
method: 'GET',
|
// const faviconApiChangelog = await axios.get('https://realfavicongenerator.net/api/versions');
|
||||||
uri: 'https://realfavicongenerator.net/api/versions',
|
// faviconApiVersion = faviconApiChangelog.filter(vObj => vObj.relevance.automated_update).slice(-1)[0].version;
|
||||||
headers: {
|
// } catch(e) {
|
||||||
'Accept': '*/*'
|
// console.error(e);
|
||||||
},
|
// }
|
||||||
json: true
|
// }
|
||||||
});
|
|
||||||
faviconApiVersion = faviconApiChangelog.filter(vObj => vObj.relevance.automated_update).slice(-1)[0].version;
|
|
||||||
} catch(e) {
|
|
||||||
console.error(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
module: {
|
module: {
|
||||||
@ -213,12 +207,12 @@ async function webpackConfig() {
|
|||||||
|
|
||||||
const cacheDirectory = path.resolve(__dirname, '.well-known-cache', `${cacheDigest}-${lang}`);
|
const cacheDirectory = path.resolve(__dirname, '.well-known-cache', `${cacheDigest}-${lang}`);
|
||||||
|
|
||||||
if (fs.existsSync(faviconNixDirectory)) {
|
if (fs.existsSync(wellKnownCacheDir)) {
|
||||||
console.log("Using favicons generated by nix");
|
console.log("Using favicons generated by nix");
|
||||||
return [
|
return [
|
||||||
new CopyPlugin({
|
new CopyPlugin({
|
||||||
patterns: [
|
patterns: [
|
||||||
{ from: path.resolve(faviconNixDirectory, lang), to: path.resolve(__dirname, 'well-known', lang) }
|
{ from: path.resolve(wellKnownCacheDir, lang), to: path.resolve(__dirname, 'well-known', lang) }
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
@ -285,13 +279,7 @@ async function webpackConfig() {
|
|||||||
sourceMap: true
|
sourceMap: true
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
new OptimizeCSSAssetsPlugin({
|
new MiniCssExtractPlugin(),
|
||||||
cssProcessorOptions: {
|
|
||||||
map: {
|
|
||||||
inline: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
],
|
],
|
||||||
moduleIds: 'named',
|
moduleIds: 'named',
|
||||||
chunkIds: 'named',
|
chunkIds: 'named',
|
||||||
|
|||||||
Reference in New Issue
Block a user