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/DllReferencePlugin.js | 56 ++++++++++++++++++++++++++++++++------------------------
1 files changed, 32 insertions(+), 24 deletions(-)
diff --git a/node_modules/webpack/lib/DllReferencePlugin.js b/node_modules/webpack/lib/DllReferencePlugin.js
index 20b0f41..fd64b13 100644
--- a/node_modules/webpack/lib/DllReferencePlugin.js
+++ b/node_modules/webpack/lib/DllReferencePlugin.js
@@ -5,13 +5,12 @@
"use strict";
-const parseJson = require("json-parse-even-better-errors");
const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
const ExternalModuleFactoryPlugin = require("./ExternalModuleFactoryPlugin");
const WebpackError = require("./WebpackError");
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
-const createSchemaValidation = require("./util/create-schema-validation");
-const makePathsRelative = require("./util/identifier").makePathsRelative;
+const { makePathsRelative } = require("./util/identifier");
+const parseJson = require("./util/parseJson");
/** @typedef {import("../declarations/WebpackOptions").Externals} Externals */
/** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
@@ -21,36 +20,37 @@
/** @typedef {import("./Compiler").CompilationParams} CompilationParams */
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
-const validate = createSchemaValidation(
- require("../schemas/plugins/DllReferencePlugin.check"),
- () => require("../schemas/plugins/DllReferencePlugin.json"),
- {
- name: "Dll Reference Plugin",
- baseDataPath: "options"
- }
-);
-
/** @typedef {{ path: string, data: DllReferencePluginOptionsManifest | undefined, error: Error | undefined }} CompilationDataItem */
const PLUGIN_NAME = "DllReferencePlugin";
class DllReferencePlugin {
/**
+ * Creates an instance of DllReferencePlugin.
* @param {DllReferencePluginOptions} options options object
*/
constructor(options) {
- validate(options);
this.options = options;
- /** @type {WeakMap<CompilationParams, CompilationDataItem>} */
- this._compilationData = new WeakMap();
}
/**
- * Apply the plugin
+ * Applies the plugin by registering its hooks on the compiler.
* @param {Compiler} compiler the compiler instance
* @returns {void}
*/
apply(compiler) {
+ compiler.hooks.validate.tap(PLUGIN_NAME, () => {
+ compiler.validate(
+ () => require("../schemas/plugins/DllReferencePlugin.json"),
+ this.options,
+ {
+ name: "Dll Reference Plugin",
+ baseDataPath: "options"
+ },
+ (options) =>
+ require("../schemas/plugins/DllReferencePlugin.check")(options)
+ );
+ });
compiler.hooks.compilation.tap(
PLUGIN_NAME,
(compilation, { normalModuleFactory }) => {
@@ -60,6 +60,9 @@
);
}
);
+
+ /** @type {WeakMap<CompilationParams, CompilationDataItem>} */
+ const compilationData = new WeakMap();
compiler.hooks.beforeCompile.tapAsync(PLUGIN_NAME, (params, callback) => {
if ("manifest" in this.options) {
@@ -77,9 +80,12 @@
// Catch errors parsing the manifest so that blank
// or malformed manifest files don't kill the process.
try {
- data.data = parseJson(
- /** @type {Buffer} */ (result).toString("utf8")
- );
+ data.data =
+ /** @type {DllReferencePluginOptionsManifest} */
+ (
+ /** @type {unknown} */
+ (parseJson(/** @type {Buffer} */ (result).toString("utf8")))
+ );
} catch (parseErr) {
// Store the error in the params so that it can
// be added as a compilation error later on.
@@ -93,7 +99,7 @@
/** @type {Error} */ (parseErr).message
);
}
- this._compilationData.set(params, data);
+ compilationData.set(params, data);
return callback();
});
return;
@@ -109,11 +115,12 @@
"content" in this.options ? this.options.content : undefined;
if ("manifest" in this.options) {
const manifestParameter = this.options.manifest;
+ /** @type {undefined | DllReferencePluginOptionsManifest} */
let manifest;
if (typeof manifestParameter === "string") {
const data =
/** @type {CompilationDataItem} */
- (this._compilationData.get(params));
+ (compilationData.get(params));
// If there was an error parsing the manifest
// file, exit now because the error will be added
// as a compilation error in the "compilation" hook.
@@ -155,9 +162,9 @@
if ("manifest" in this.options) {
const manifest = this.options.manifest;
if (typeof manifest === "string") {
- const data = /** @type {CompilationDataItem} */ (
- this._compilationData.get(params)
- );
+ const data =
+ /** @type {CompilationDataItem} */
+ (compilationData.get(params));
// If there was an error parsing the manifest file, add the
// error as a compilation error to make the compilation fail.
if (data.error) {
@@ -174,6 +181,7 @@
class DllManifestError extends WebpackError {
/**
+ * Creates an instance of DllManifestError.
* @param {string} filename filename of the manifest
* @param {string} message error message
*/
--
Gitblit v1.9.3