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/optimize/MinChunkSizePlugin.js |   46 +++++++++++++++++++++++++++-------------------
 1 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/node_modules/webpack/lib/optimize/MinChunkSizePlugin.js b/node_modules/webpack/lib/optimize/MinChunkSizePlugin.js
index d00f7a6..31b6df2 100644
--- a/node_modules/webpack/lib/optimize/MinChunkSizePlugin.js
+++ b/node_modules/webpack/lib/optimize/MinChunkSizePlugin.js
@@ -6,40 +6,43 @@
 "use strict";
 
 const { STAGE_ADVANCED } = require("../OptimizationStages");
-const createSchemaValidation = require("../util/create-schema-validation");
 
 /** @typedef {import("../../declarations/plugins/optimize/MinChunkSizePlugin").MinChunkSizePluginOptions} MinChunkSizePluginOptions */
 /** @typedef {import("../Chunk")} Chunk */
 /** @typedef {import("../Compiler")} Compiler */
 
-const validate = createSchemaValidation(
-	require("../../schemas/plugins/optimize/MinChunkSizePlugin.check"),
-	() => require("../../schemas/plugins/optimize/MinChunkSizePlugin.json"),
-	{
-		name: "Min Chunk Size Plugin",
-		baseDataPath: "options"
-	}
-);
-
 const PLUGIN_NAME = "MinChunkSizePlugin";
 
 class MinChunkSizePlugin {
 	/**
+	 * Creates an instance of MinChunkSizePlugin.
 	 * @param {MinChunkSizePluginOptions} options options object
 	 */
 	constructor(options) {
-		validate(options);
+		/** @type {MinChunkSizePluginOptions} */
 		this.options = options;
 	}
 
 	/**
-	 * 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 = this.options;
-		const minChunkSize = options.minChunkSize;
+		compiler.hooks.validate.tap(PLUGIN_NAME, () => {
+			compiler.validate(
+				() => require("../../schemas/plugins/optimize/MinChunkSizePlugin.json"),
+				this.options,
+				{
+					name: "Min Chunk Size Plugin",
+					baseDataPath: "options"
+				},
+				(options) =>
+					require("../../schemas/plugins/optimize/MinChunkSizePlugin.check")(
+						options
+					)
+			);
+		});
 		compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
 			compilation.hooks.optimizeChunks.tap(
 				{
@@ -53,16 +56,21 @@
 						entryChunkMultiplicator: 1
 					};
 
+					/** @type {Map<Chunk, number>} */
 					const chunkSizesMap = new Map();
 					/** @type {[Chunk, Chunk][]} */
 					const combinations = [];
 					/** @type {Chunk[]} */
 					const smallChunks = [];
+					/** @type {Chunk[]} */
 					const visitedChunks = [];
 					for (const a of chunks) {
 						// check if one of the chunks sizes is smaller than the minChunkSize
 						// and filter pairs that can NOT be integrated!
-						if (chunkGraph.getChunkSize(a, equalOptions) < minChunkSize) {
+						if (
+							chunkGraph.getChunkSize(a, equalOptions) <
+							this.options.minChunkSize
+						) {
 							smallChunks.push(a);
 							for (const b of visitedChunks) {
 								if (chunkGraph.canChunksBeIntegrated(b, a)) {
@@ -76,19 +84,19 @@
 								}
 							}
 						}
-						chunkSizesMap.set(a, chunkGraph.getChunkSize(a, options));
+						chunkSizesMap.set(a, chunkGraph.getChunkSize(a, this.options));
 						visitedChunks.push(a);
 					}
 
 					const sortedSizeFilteredExtendedPairCombinations = combinations
 						.map((pair) => {
 							// extend combination pairs with size and integrated size
-							const a = chunkSizesMap.get(pair[0]);
-							const b = chunkSizesMap.get(pair[1]);
+							const a = /** @type {number} */ (chunkSizesMap.get(pair[0]));
+							const b = /** @type {number} */ (chunkSizesMap.get(pair[1]));
 							const ab = chunkGraph.getIntegratedChunksSize(
 								pair[0],
 								pair[1],
-								options
+								this.options
 							);
 							/** @type {[number, number, Chunk, Chunk]} */
 							const extendedPair = [a + b - ab, ab, pair[0], pair[1]];

--
Gitblit v1.9.3