From 9bce51f651aad297ef9eb6df832bfdaf1de05d84 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 14:27:54 +0800
Subject: [PATCH] 青岛推送

---
 node_modules/webpack/lib/container/ModuleFederationPlugin.js |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/node_modules/webpack/lib/container/ModuleFederationPlugin.js b/node_modules/webpack/lib/container/ModuleFederationPlugin.js
index 9e779af..bf07b3f 100644
--- a/node_modules/webpack/lib/container/ModuleFederationPlugin.js
+++ b/node_modules/webpack/lib/container/ModuleFederationPlugin.js
@@ -9,7 +9,6 @@
 const isValidExternalsType = require("../../schemas/plugins/container/ExternalsType.check");
 const Compilation = require("../Compilation");
 const SharePlugin = require("../sharing/SharePlugin");
-const createSchemaValidation = require("../util/create-schema-validation");
 const ContainerPlugin = require("./ContainerPlugin");
 const ContainerReferencePlugin = require("./ContainerReferencePlugin");
 const HoistContainerReferences = require("./HoistContainerReferencesPlugin");
@@ -20,19 +19,11 @@
 /** @typedef {import("../Dependency")} Dependency */
 
 /**
+ * Defines the compilation hooks type used by this module.
  * @typedef {object} CompilationHooks
  * @property {SyncHook<Dependency>} addContainerEntryDependency
  * @property {SyncHook<Dependency>} addFederationRuntimeDependency
  */
-
-const validate = createSchemaValidation(
-	require("../../schemas/plugins/container/ModuleFederationPlugin.check"),
-	() => require("../../schemas/plugins/container/ModuleFederationPlugin.json"),
-	{
-		name: "Module Federation Plugin",
-		baseDataPath: "options"
-	}
-);
 
 /** @type {WeakMap<Compilation, CompilationHooks>} */
 const compilationHooksMap = new WeakMap();
@@ -40,12 +31,12 @@
 
 class ModuleFederationPlugin {
 	/**
+	 * Creates an instance of ModuleFederationPlugin.
 	 * @param {ModuleFederationPluginOptions} options options
 	 */
 	constructor(options) {
-		validate(options);
-
-		this._options = options;
+		/** @type {ModuleFederationPluginOptions} */
+		this.options = options;
 	}
 
 	/**
@@ -71,12 +62,27 @@
 	}
 
 	/**
-	 * Apply the plugin
+	 * Applies the plugin by registering its hooks on the compiler.
 	 * @param {Compiler} compiler the compiler instance
 	 * @returns {void}
 	 */
 	apply(compiler) {
-		const { _options: options } = this;
+		compiler.hooks.validate.tap(PLUGIN_NAME, () => {
+			compiler.validate(
+				() =>
+					require("../../schemas/plugins/container/ModuleFederationPlugin.json"),
+				this.options,
+				{
+					name: "Module Federation Plugin",
+					baseDataPath: "options"
+				},
+				(options) =>
+					require("../../schemas/plugins/container/ModuleFederationPlugin.check")(
+						options
+					)
+			);
+		});
+		const { options } = this;
 		const library = options.library || { type: "var", name: options.name };
 		const remoteType =
 			options.remoteType ||

--
Gitblit v1.9.3