| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const path = require("path");class NormalModuleReplacementPlugin {	constructor(resourceRegExp, newResource) {		this.resourceRegExp = resourceRegExp;		this.newResource = newResource;	}	apply(compiler) {		const resourceRegExp = this.resourceRegExp;		const newResource = this.newResource;		compiler.hooks.normalModuleFactory.tap(			"NormalModuleReplacementPlugin",			nmf => {				nmf.hooks.beforeResolve.tap("NormalModuleReplacementPlugin", result => {					if (!result) return;					if (resourceRegExp.test(result.request)) {						if (typeof newResource === "function") {							newResource(result);						} else {							result.request = newResource;						}					}					return result;				});				nmf.hooks.afterResolve.tap("NormalModuleReplacementPlugin", result => {					if (!result) return;					if (resourceRegExp.test(result.resource)) {						if (typeof newResource === "function") {							newResource(result);						} else {							result.resource = path.resolve(								path.dirname(result.resource),								newResource							);						}					}					return result;				});			}		);	}}module.exports = NormalModuleReplacementPlugin;
 |