@openscript/unplugin-favicons
Version:
Generate favicons for your project with caching for blazing fast rebuilds.
31 lines • 1.4 kB
JavaScript
import Module from "node:module";
const require = Module.createRequire(import.meta.url);
/** Return the currently used html-webpack-plugin location */
const getHtmlWebpackPluginVersion = () => {
try {
const location = require.resolve("html-webpack-plugin/package.json");
// eslint-disable-next-line import/no-dynamic-require,@typescript-eslint/no-unsafe-assignment,security/detect-non-literal-require
const { version } = require(location);
return `found html-webpack-plugin ${version} at ${location}`;
}
catch {
return "html-webpack-plugin not found";
}
};
const findHtmlWebpackPlugin = (compilation) => {
const { compiler } = compilation;
const Plugin = compiler.options.plugins.find((p) => p?.constructor?.name === "HtmlWebpackPlugin")?.constructor;
if (Plugin === undefined) {
return undefined;
}
if (Plugin.version >= 5) {
return Plugin;
}
compilation.errors.push(
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
new compiler.webpack.WebpackError(`${"This @openscript/unplugin-favicons version is not compatible with your current HtmlWebpackPlugin version.\n" +
"Please upgrade to HtmlWebpackPlugin >= 5\n"}${getHtmlWebpackPluginVersion()}`));
return undefined;
};
export default findHtmlWebpackPlugin;
//# sourceMappingURL=find-html-webpack-plugin.js.map