From d5f14083061f2ce6a42313188443a42e30796320 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Tue, 31 Oct 2023 15:37:35 +0800 Subject: added make browserlist(autoprefixer) work fixed --- .../webpack/lib/NormalModuleReplacementPlugin.js | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 node_modules/webpack/lib/NormalModuleReplacementPlugin.js (limited to 'node_modules/webpack/lib/NormalModuleReplacementPlugin.js') diff --git a/node_modules/webpack/lib/NormalModuleReplacementPlugin.js b/node_modules/webpack/lib/NormalModuleReplacementPlugin.js new file mode 100644 index 00000000..53b6c12a --- /dev/null +++ b/node_modules/webpack/lib/NormalModuleReplacementPlugin.js @@ -0,0 +1,73 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ + +"use strict"; + +const { join, dirname } = require("./util/fs"); + +/** @typedef {import("./Compiler")} Compiler */ +/** @typedef {function(import("./NormalModuleFactory").ResolveData): void} ModuleReplacer */ + +class NormalModuleReplacementPlugin { + /** + * Create an instance of the plugin + * @param {RegExp} resourceRegExp the resource matcher + * @param {string|ModuleReplacer} newResource the resource replacement + */ + constructor(resourceRegExp, newResource) { + this.resourceRegExp = resourceRegExp; + this.newResource = newResource; + } + + /** + * Apply the plugin + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ + apply(compiler) { + const resourceRegExp = this.resourceRegExp; + const newResource = this.newResource; + compiler.hooks.normalModuleFactory.tap( + "NormalModuleReplacementPlugin", + nmf => { + nmf.hooks.beforeResolve.tap("NormalModuleReplacementPlugin", result => { + if (resourceRegExp.test(result.request)) { + if (typeof newResource === "function") { + newResource(result); + } else { + result.request = newResource; + } + } + }); + nmf.hooks.afterResolve.tap("NormalModuleReplacementPlugin", result => { + const createData = result.createData; + if ( + resourceRegExp.test(/** @type {string} */ (createData.resource)) + ) { + if (typeof newResource === "function") { + newResource(result); + } else { + const fs = compiler.inputFileSystem; + if ( + newResource.startsWith("/") || + (newResource.length > 1 && newResource[1] === ":") + ) { + createData.resource = newResource; + } else { + createData.resource = join( + fs, + dirname(fs, /** @type {string} */ (createData.resource)), + newResource + ); + } + } + } + }); + } + ); + } +} + +module.exports = NormalModuleReplacementPlugin; -- cgit v1.2.3