From 3bd962a6d7f61239c020e2dbbeb7341e5b842dd1 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 21 四月 2026 11:46:41 +0800
Subject: [PATCH] 推送
---
node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js | 35 ++++++++++++++++++++++-------------
1 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js b/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js
index f0adc66..b4de701 100644
--- a/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js
+++ b/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js
@@ -6,38 +6,45 @@
"use strict";
const { STAGE_BASIC } = require("../OptimizationStages");
-const createSchemaValidation = require("../util/create-schema-validation");
const { runtimeEqual } = require("../util/runtime");
/** @typedef {import("../../declarations/plugins/optimize/MergeDuplicateChunksPlugin").MergeDuplicateChunksPluginOptions} MergeDuplicateChunksPluginOptions */
/** @typedef {import("../Compiler")} Compiler */
-
-const validate = createSchemaValidation(
- require("../../schemas/plugins/optimize/MergeDuplicateChunksPlugin.check"),
- () =>
- require("../../schemas/plugins/optimize/MergeDuplicateChunksPlugin.json"),
- {
- name: "Merge Duplicate Chunks Plugin",
- baseDataPath: "options"
- }
-);
+/** @typedef {import("../Chunk")} Chunk */
const PLUGIN_NAME = "MergeDuplicateChunksPlugin";
class MergeDuplicateChunksPlugin {
/**
- * @param {MergeDuplicateChunksPluginOptions} options options object
+ * Creates an instance of MergeDuplicateChunksPlugin.
+ * @param {MergeDuplicateChunksPluginOptions=} options options object
*/
constructor(options = { stage: STAGE_BASIC }) {
- validate(options);
+ /** @type {MergeDuplicateChunksPluginOptions} */
this.options = options;
}
/**
+ * Applies the plugin by registering its hooks on the compiler.
* @param {Compiler} compiler the compiler
* @returns {void}
*/
apply(compiler) {
+ compiler.hooks.validate.tap(PLUGIN_NAME, () => {
+ compiler.validate(
+ () =>
+ require("../../schemas/plugins/optimize/MergeDuplicateChunksPlugin.json"),
+ this.options,
+ {
+ name: "Merge Duplicate Chunks Plugin",
+ baseDataPath: "options"
+ },
+ (options) =>
+ require("../../schemas/plugins/optimize/MergeDuplicateChunksPlugin.check")(
+ options
+ )
+ );
+ });
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
compilation.hooks.optimizeChunks.tap(
{
@@ -48,11 +55,13 @@
const { chunkGraph, moduleGraph } = compilation;
// remember already tested chunks for performance
+ /** @type {Set<Chunk>} */
const notDuplicates = new Set();
// for each chunk
for (const chunk of chunks) {
// track a Set of all chunk that could be duplicates
+ /** @type {Set<Chunk> | undefined} */
let possibleDuplicates;
for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
if (possibleDuplicates === undefined) {
--
Gitblit v1.9.3