From ecec3cf5654050c8ec96a924fcaa8bad618d526c Mon Sep 17 00:00:00 2001 From: Johannes Raggam Date: Thu, 15 Aug 2024 00:03:53 +0200 Subject: [PATCH] fix: Webpack style loader. Webpack style loader's insert option needs a different way to reference functions. Also deprecate webpack-helpers module. --- webpack/style-inserter.js | 12 ++++++++++++ webpack/webpack-helpers.js | 17 ++++------------- webpack/webpack.config.js | 3 +-- 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 webpack/style-inserter.js diff --git a/webpack/style-inserter.js b/webpack/style-inserter.js new file mode 100644 index 0000000..7b28f41 --- /dev/null +++ b/webpack/style-inserter.js @@ -0,0 +1,12 @@ +function style_inserter(el) { + // Insert element at the top of + // Used for injecting CSS via webpack before any other CSS + var first_child = document.head.querySelectorAll("*")[0]; + if (first_child) { + document.head.insertBefore(el, first_child); + } else { + document.head.append(el); + } +} + +module.exports = style_inserter; diff --git a/webpack/webpack-helpers.js b/webpack/webpack-helpers.js index 8a4a305..0a753a9 100644 --- a/webpack/webpack-helpers.js +++ b/webpack/webpack-helpers.js @@ -1,16 +1,7 @@ -function top_head_insert(el) { - // Insert element at the top of - // Used for injecting CSS via webpack before any other CSS - // Note: - // Keep code compatible with IE11 as long as we support it. - var first_child = document.head.querySelectorAll("*")[0]; - if (first_child) { - document.head.insertBefore(el, first_child); - } else { - document.head.append(el); - } -} +// BBB +// TODO: Remove in next major version. +const style_inserter = require("./style-inserter"); module.exports = { - top_head_insert: top_head_insert, + top_head_insert: style_inserter, }; diff --git a/webpack/webpack.config.js b/webpack/webpack.config.js index a8c0812..d814942 100644 --- a/webpack/webpack.config.js +++ b/webpack/webpack.config.js @@ -1,6 +1,5 @@ process.traceDeprecation = true; const webpack = require("webpack"); -const webpack_helpers = require("./webpack-helpers"); // plugins const TerserPlugin = require("terser-webpack-plugin"); @@ -60,7 +59,7 @@ const config_factory = (env, argv, config, babel_include = [], package_json) => { loader: "style-loader", options: { - insert: webpack_helpers.top_head_insert, + insert: require.resolve("./style-inserter"), }, }, "css-loader",