From 2cc85c64f1c64a2dbaeae276a3e2ca8420de76b7 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 18:09:58 +0800
Subject: [PATCH] 上报转运调试
---
node_modules/webpack/lib/Module.js | 245 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 220 insertions(+), 25 deletions(-)
diff --git a/node_modules/webpack/lib/Module.js b/node_modules/webpack/lib/Module.js
index 6f8ebef..b97fd4e 100644
--- a/node_modules/webpack/lib/Module.js
+++ b/node_modules/webpack/lib/Module.js
@@ -9,7 +9,11 @@
const ChunkGraph = require("./ChunkGraph");
const DependenciesBlock = require("./DependenciesBlock");
const ModuleGraph = require("./ModuleGraph");
-const { JS_TYPES } = require("./ModuleSourceTypesConstants");
+const {
+ JAVASCRIPT_TYPE,
+ UNKNOWN_TYPE
+} = require("./ModuleSourceTypeConstants");
+const { JAVASCRIPT_TYPES } = require("./ModuleSourceTypeConstants");
const RuntimeGlobals = require("./RuntimeGlobals");
const { first } = require("./util/SetHelpers");
const { compareChunksById } = require("./util/comparators");
@@ -24,24 +28,26 @@
/** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */
/** @typedef {import("./Compilation")} Compilation */
/** @typedef {import("./Compilation").AssetInfo} AssetInfo */
+/** @typedef {import("./Compilation").FileSystemDependencies} FileSystemDependencies */
/** @typedef {import("./Compilation").UnsafeCacheData} UnsafeCacheData */
/** @typedef {import("./ConcatenationScope")} ConcatenationScope */
/** @typedef {import("./Dependency")} Dependency */
/** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
/** @typedef {import("./DependencyTemplate").CssData} CssData */
/** @typedef {import("./DependencyTemplates")} DependencyTemplates */
+/** @typedef {import("./ModuleSourceTypeConstants").AllTypes} AllTypes */
/** @typedef {import("./FileSystemInfo")} FileSystemInfo */
/** @typedef {import("./FileSystemInfo").Snapshot} Snapshot */
/** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
/** @typedef {import("./ModuleTypeConstants").ModuleTypes} ModuleTypes */
/** @typedef {import("./ModuleGraph").OptimizationBailouts} OptimizationBailouts */
+/** @typedef {import("./ModuleProfile")} ModuleProfile */
/** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
/** @typedef {import("./RequestShortener")} RequestShortener */
/** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
-/** @typedef {import("../declarations/WebpackOptions").CssParserExportType} CssParserExportType */
-
/**
+ * Defines the init fragment type used by this module.
* @template T
* @typedef {import("./InitFragment")<T>} InitFragment
*/
@@ -53,14 +59,20 @@
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
/** @typedef {import("./util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
+/**
+ * @template T
+ * @typedef {import("./util/SortableSet")<T>} SortableSet
+ */
/** @typedef {"namespace" | "default-only" | "default-with-named" | "dynamic"} ExportsType */
/**
+ * Defines the shared type used by this module.
* @template T
* @typedef {import("./util/LazySet")<T>} LazySet<T>
*/
/**
+ * Defines the source context type used by this module.
* @typedef {object} SourceContext
* @property {DependencyTemplates} dependencyTemplates the dependency templates
* @property {RuntimeTemplate} runtimeTemplate the runtime template
@@ -70,16 +82,22 @@
* @property {string=} type the type of source that should be generated
*/
-/** @typedef {ReadonlySet<string>} SourceTypes */
+/** @typedef {AllTypes} KnownSourceType */
+/** @typedef {KnownSourceType | string} SourceType */
+/** @typedef {ReadonlySet<SourceType>} SourceTypes */
+
+/** @typedef {ReadonlySet<typeof JAVASCRIPT_TYPE | string>} BasicSourceTypes */
// TODO webpack 6: compilation will be required in CodeGenerationContext
/**
+ * Defines the code generation context type used by this module.
* @typedef {object} CodeGenerationContext
* @property {DependencyTemplates} dependencyTemplates the dependency templates
* @property {RuntimeTemplate} runtimeTemplate the runtime template
* @property {ModuleGraph} moduleGraph the module graph
* @property {ChunkGraph} chunkGraph the chunk graph
* @property {RuntimeSpec} runtime the runtimes code should be generated for
+ * @property {RuntimeSpec[]} runtimes all runtimes code should be generated for
* @property {ConcatenationScope=} concatenationScope when in concatenated module, information about other concatenated modules
* @property {CodeGenerationResults | undefined} codeGenerationResults code generation results of other modules (need to have a codeGenerationDependency to use that)
* @property {Compilation=} compilation the compilation
@@ -87,6 +105,7 @@
*/
/**
+ * Defines the concatenation bailout reason context type used by this module.
* @typedef {object} ConcatenationBailoutReasonContext
* @property {ModuleGraph} moduleGraph the module graph
* @property {ChunkGraph} chunkGraph the chunk graph
@@ -95,30 +114,60 @@
/** @typedef {Set<string>} RuntimeRequirements */
/** @typedef {ReadonlySet<string>} ReadOnlyRuntimeRequirements */
-/** @typedef {Map<"topLevelDeclarations", Set<string>> & Map<"chunkInitFragments", InitFragment<EXPECTED_ANY>[]>} KnownCodeGenerationResultDataForJavascriptModules */
-/** @typedef {Map<"url", { ["css-url"]: string }>} KnownCodeGenerationResultDataForCssModules */
-/** @typedef {Map<"filename", string> & Map<"assetInfo", AssetInfo> & Map<"fullContentHash", string>} KnownCodeGenerationResultDataForAssetModules */
-/** @typedef {Map<"share-init", [{ shareScope: string, initStage: number, init: string }]>} KnownCodeGenerationResultForSharing */
-/** @typedef {KnownCodeGenerationResultDataForJavascriptModules & KnownCodeGenerationResultDataForCssModules & KnownCodeGenerationResultDataForAssetModules & KnownCodeGenerationResultForSharing & Map<string, EXPECTED_ANY>} CodeGenerationResultData */
+/**
+ * Defines the all code generation schemas type used by this module.
+ * @typedef {object} AllCodeGenerationSchemas
+ * @property {Set<string>} topLevelDeclarations top level declarations for javascript modules
+ * @property {InitFragment<EXPECTED_ANY>[]} chunkInitFragments chunk init fragments for javascript modules
+ * @property {{ javascript?: string, ["css-url"]?: string }} url url for css and javascript modules
+ * @property {string} filename a filename for asset modules
+ * @property {AssetInfo} assetInfo an asset info for asset modules
+ * @property {string} fullContentHash a full content hash for asset modules
+ * @property {[{ shareScope: string, initStage: number, init: string }]} share-init share-init for modules federation
+ */
/**
+ * Defines the code gen value type used by this module.
+ * @template {string} K
+ * @typedef {K extends keyof AllCodeGenerationSchemas ? AllCodeGenerationSchemas[K] : EXPECTED_ANY} CodeGenValue
+ */
+
+/**
+ * Defines the code gen map overloads type used by this module.
+ * @typedef {object} CodeGenMapOverloads
+ * @property {<K extends string>(key: K) => CodeGenValue<K> | undefined} get
+ * @property {<K extends string>(key: K, value: CodeGenValue<K>) => CodeGenerationResultData} set
+ * @property {<K extends string>(key: K) => boolean} has
+ * @property {<K extends string>(key: K) => boolean} delete
+ */
+
+/**
+ * Defines the code generation result data type used by this module.
+ * @typedef {Omit<Map<string, EXPECTED_ANY>, "get" | "set" | "has" | "delete"> & CodeGenMapOverloads} CodeGenerationResultData
+ */
+
+/** @typedef {Map<SourceType, Source>} Sources */
+
+/**
+ * Defines the code generation result type used by this module.
* @typedef {object} CodeGenerationResult
- * @property {Map<string, Source>} sources the resulting sources for all source types
+ * @property {Sources} sources the resulting sources for all source types
* @property {CodeGenerationResultData=} data the resulting data for all source types
* @property {ReadOnlyRuntimeRequirements | null} runtimeRequirements the runtime requirements
* @property {string=} hash a hash of the code generation result (will be automatically calculated from sources and runtimeRequirements if not provided)
*/
/**
+ * Defines the lib ident options type used by this module.
* @typedef {object} LibIdentOptions
* @property {string} context absolute context path to which lib ident is relative to
* @property {AssociatedObjectForCache=} associatedObjectForCache object for caching
*/
/**
+ * Defines the known build meta type used by this module.
* @typedef {object} KnownBuildMeta
* @property {("default" | "namespace" | "flagged" | "dynamic")=} exportsType
- * @property {CssParserExportType=} exportType
* @property {(false | "redirect" | "redirect-warn")=} defaultObject
* @property {boolean=} strictHarmonyModule
* @property {boolean=} treatAsCommonJs
@@ -126,13 +175,12 @@
* @property {boolean=} sideEffectFree
* @property {boolean=} isCSSModule
* @property {Record<string, string>=} jsIncompatibleExports
- * @property {Record<string, string>=} exportsFinalName
- * @property {string=} factoryExportsBinding
+ * @property {Map<string, Record<string, string>>=} exportsFinalNameByRuntime
+ * @property {Map<string, string>=} exportsSourceByRuntime
*/
-/** @typedef {LazySet<string>} FileSystemDependencies */
-
/**
+ * Defines the known build info type used by this module.
* @typedef {object} KnownBuildInfo
* @property {boolean=} cacheable
* @property {boolean=} parsed
@@ -158,6 +206,7 @@
* @property {boolean=} javascriptModule for external modules
* @property {boolean=} active for lazy compilation modules
* @property {CssData=} cssData for css modules
+ * @property {string=} charset for css modules (charset at-rule)
* @property {JsonData=} jsonData for json modules
* @property {Set<string>=} topLevelDeclarations top level declaration names
*/
@@ -166,6 +215,7 @@
/** @typedef {Map<string, ValueCacheVersion>} ValueCacheVersions */
/**
+ * Defines the need build context type used by this module.
* @typedef {object} NeedBuildContext
* @property {Compilation} compilation
* @property {FileSystemInfo} fileSystemInfo
@@ -180,6 +230,7 @@
/** @typedef {KnownBuildInfo & Record<string, EXPECTED_ANY>} BuildInfo */
/**
+ * Defines the factory meta type used by this module.
* @typedef {object} FactoryMeta
* @property {boolean=} sideEffectFree
*/
@@ -188,10 +239,12 @@
let debugId = 1000;
-const DEFAULT_TYPES_UNKNOWN = new Set(["unknown"]);
+/** @type {SourceTypes} */
+const DEFAULT_TYPES_UNKNOWN = new Set([UNKNOWN_TYPE]);
const deprecatedNeedRebuild = util.deprecate(
/**
+ * Handles the callback logic for this hook.
* @param {Module} module the module
* @param {NeedBuildContext} context context info
* @returns {boolean} true, when rebuild is needed
@@ -212,6 +265,7 @@
class Module extends DependenciesBlock {
/**
+ * Creates an instance of Module.
* @param {ModuleTypes | ""} type the module type, when deserializing the type is not known and is an empty string
* @param {(string | null)=} context an optional context
* @param {(string | null)=} layer an optional layer in which the module is
@@ -266,6 +320,8 @@
// TODO remove in webpack 6
// BACKWARD-COMPAT START
/**
+ * Returns the module id assigned by the chunk graph.
+ * @deprecated
* @returns {ModuleId | null} module id
*/
get id() {
@@ -277,6 +333,8 @@
}
/**
+ * Updates the module id using the provided value.
+ * @deprecated
* @param {ModuleId} value value
*/
set id(value) {
@@ -292,6 +350,8 @@
}
/**
+ * Returns the hash of the module.
+ * @deprecated
* @returns {string} the hash of the module
*/
get hash() {
@@ -303,6 +363,8 @@
}
/**
+ * Returns the rendered hash of the module.
+ * @deprecated
* @returns {string} the shortened hash of the module
*/
get renderedHash() {
@@ -313,6 +375,10 @@
).getRenderedModuleHash(this, undefined);
}
+ /**
+ * @deprecated
+ * @returns {ModuleProfile | undefined} module profile
+ */
get profile() {
return ModuleGraph.getModuleGraphForModule(
this,
@@ -321,6 +387,10 @@
).getProfile(this);
}
+ /**
+ * @deprecated
+ * @param {ModuleProfile | undefined} value module profile
+ */
set profile(value) {
ModuleGraph.getModuleGraphForModule(
this,
@@ -330,6 +400,8 @@
}
/**
+ * Returns the pre-order index.
+ * @deprecated
* @returns {number | null} the pre order index
*/
get index() {
@@ -341,6 +413,8 @@
}
/**
+ * Updates the pre-order index using the provided value.
+ * @deprecated
* @param {number} value the pre order index
*/
set index(value) {
@@ -352,6 +426,8 @@
}
/**
+ * Returns the post-order index.
+ * @deprecated
* @returns {number | null} the post order index
*/
get index2() {
@@ -363,6 +439,8 @@
}
/**
+ * Updates the post-order index using the provided value.
+ * @deprecated
* @param {number} value the post order index
*/
set index2(value) {
@@ -374,6 +452,8 @@
}
/**
+ * Returns the depth.
+ * @deprecated
* @returns {number | null} the depth
*/
get depth() {
@@ -385,6 +465,8 @@
}
/**
+ * Updates the depth using the provided value.
+ * @deprecated
* @param {number} value the depth
*/
set depth(value) {
@@ -396,6 +478,8 @@
}
/**
+ * Returns the issuer.
+ * @deprecated
* @returns {Module | null | undefined} issuer
*/
get issuer() {
@@ -407,6 +491,8 @@
}
/**
+ * Updates the issuer using the provided value.
+ * @deprecated
* @param {Module | null} value issuer
*/
set issuer(value) {
@@ -417,6 +503,10 @@
).setIssuer(this, value);
}
+ /**
+ * @deprecated
+ * @returns {boolean | SortableSet<string> | null} used exports
+ */
get usedExports() {
return ModuleGraph.getModuleGraphForModule(
this,
@@ -426,6 +516,7 @@
}
/**
+ * Gets optimization bailout.
* @deprecated
* @returns {OptimizationBailouts} list
*/
@@ -437,6 +528,10 @@
).getOptimizationBailout(this);
}
+ /**
+ * @deprecated
+ * @returns {boolean} true when optional, otherwise false
+ */
get optional() {
return this.isOptional(
ModuleGraph.getModuleGraphForModule(
@@ -448,6 +543,8 @@
}
/**
+ * Adds the provided chunk to the module.
+ * @deprecated
* @param {Chunk} chunk the chunk
* @returns {boolean} true, when the module was added
*/
@@ -463,6 +560,8 @@
}
/**
+ * Removes the provided chunk from the module.
+ * @deprecated
* @param {Chunk} chunk the chunk
* @returns {void}
*/
@@ -475,6 +574,8 @@
}
/**
+ * Checks whether this module is in the provided chunk.
+ * @deprecated
* @param {Chunk} chunk the chunk
* @returns {boolean} true, when the module is in the chunk
*/
@@ -486,6 +587,10 @@
).isModuleInChunk(this, chunk);
}
+ /**
+ * @deprecated
+ * @returns {boolean} true when is entry module, otherwise false
+ */
isEntryModule() {
return ChunkGraph.getChunkGraphForModule(
this,
@@ -494,6 +599,10 @@
).isEntryModule(this);
}
+ /**
+ * @deprecated
+ * @returns {Chunk[]} chunks
+ */
getChunks() {
return ChunkGraph.getChunkGraphForModule(
this,
@@ -502,6 +611,10 @@
).getModuleChunks(this);
}
+ /**
+ * @deprecated
+ * @returns {number} number of chunks
+ */
getNumberOfChunks() {
return ChunkGraph.getChunkGraphForModule(
this,
@@ -510,6 +623,10 @@
).getNumberOfModuleChunks(this);
}
+ /**
+ * @deprecated
+ * @returns {Iterable<Chunk>} chunks
+ */
get chunksIterable() {
return ChunkGraph.getChunkGraphForModule(
this,
@@ -519,6 +636,8 @@
}
/**
+ * Checks whether this module provides the specified export.
+ * @deprecated
* @param {string} exportName a name of an export
* @returns {boolean | null} true, if the export is provided why the module.
* null, if it's unknown.
@@ -534,6 +653,7 @@
// BACKWARD-COMPAT END
/**
+ * Gets exports argument.
* @returns {string} name of the exports argument
*/
get exportsArgument() {
@@ -541,6 +661,7 @@
}
/**
+ * Gets module argument.
* @returns {string} name of the module argument
*/
get moduleArgument() {
@@ -548,6 +669,7 @@
}
/**
+ * Returns export type.
* @param {ModuleGraph} moduleGraph the module graph
* @param {boolean | undefined} strict the importing module is strict
* @returns {ExportsType} export type
@@ -618,6 +740,7 @@
}
/**
+ * Adds presentational dependency.
* @param {Dependency} presentationalDependency dependency being tied to module.
* This is a Dependency without edge in the module graph. It's only for presentation.
* @returns {void}
@@ -630,6 +753,7 @@
}
/**
+ * Adds code generation dependency.
* @param {Dependency} codeGenerationDependency dependency being tied to module.
* This is a Dependency where the code generation result of the referenced module is needed during code generation.
* The Dependency should also be added to normal dependencies via addDependency.
@@ -643,7 +767,7 @@
}
/**
- * Removes all dependencies and blocks
+ * Clear dependencies and blocks.
* @returns {void}
*/
clearDependenciesAndBlocks() {
@@ -657,6 +781,7 @@
}
/**
+ * Adds the provided warning to the module.
* @param {WebpackError} warning the warning
* @returns {void}
*/
@@ -668,6 +793,7 @@
}
/**
+ * Returns list of warnings if any.
* @returns {Iterable<WebpackError> | undefined} list of warnings if any
*/
getWarnings() {
@@ -675,6 +801,7 @@
}
/**
+ * Gets number of warnings.
* @returns {number} number of warnings
*/
getNumberOfWarnings() {
@@ -682,6 +809,7 @@
}
/**
+ * Adds the provided error to the module.
* @param {WebpackError} error the error
* @returns {void}
*/
@@ -693,6 +821,7 @@
}
/**
+ * Returns list of errors if any.
* @returns {Iterable<WebpackError> | undefined} list of errors if any
*/
getErrors() {
@@ -700,6 +829,7 @@
}
/**
+ * Gets number of errors.
* @returns {number} number of errors
*/
getNumberOfErrors() {
@@ -720,6 +850,7 @@
}
/**
+ * Checks whether this module is optional.
* @param {ModuleGraph} moduleGraph the module graph
* @returns {boolean} true, if the module is optional
*/
@@ -739,6 +870,7 @@
}
/**
+ * Checks whether this module is accessible in chunk.
* @param {ChunkGraph} chunkGraph the chunk graph
* @param {Chunk} chunk a chunk
* @param {Chunk=} ignoreChunk chunk to be ignored
@@ -753,6 +885,7 @@
}
/**
+ * Checks whether this module is accessible in chunk group.
* @param {ChunkGraph} chunkGraph the chunk graph
* @param {ChunkGroup} chunkGroup a chunk group
* @param {Chunk=} ignoreChunk chunk to be ignored
@@ -780,6 +913,7 @@
}
/**
+ * Checks whether this module contains the chunk.
* @param {Chunk} chunk a chunk
* @param {ModuleGraph} moduleGraph the module graph
* @param {ChunkGraph} chunkGraph the chunk graph
@@ -805,6 +939,7 @@
}
/**
+ * Checks whether this module contains the module graph.
* @param {ModuleGraph} moduleGraph the module graph
* @param {RuntimeSpec} runtime the runtime
* @returns {boolean} true if at least one other module depends on this module
@@ -817,6 +952,7 @@
}
/**
+ * Returns a string representation.
* @returns {string} for debugging
*/
toString() {
@@ -824,6 +960,7 @@
}
/**
+ * Checks whether the module needs to be rebuilt for the current build state.
* @param {NeedBuildContext} context context info
* @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
* @returns {void}
@@ -838,9 +975,10 @@
}
/**
+ * Checks whether it needs rebuild.
* @deprecated Use needBuild instead
- * @param {Map<string, number|null>} fileTimestamps timestamps of files
- * @param {Map<string, number|null>} contextTimestamps timestamps of directories
+ * @param {Map<string, number | null>} fileTimestamps timestamps of files
+ * @param {Map<string, number | null>} contextTimestamps timestamps of directories
* @returns {boolean} true, if the module needs a rebuild
*/
needRebuild(fileTimestamps, contextTimestamps) {
@@ -848,6 +986,7 @@
}
/**
+ * Updates the hash with the data contributed by this instance.
* @param {Hash} hash the hash used to track dependencies
* @param {UpdateHashContext} context context
* @returns {void}
@@ -874,6 +1013,7 @@
}
/**
+ * Invalidates the cached state associated with this value.
* @returns {void}
*/
invalidateBuild() {
@@ -882,6 +1022,7 @@
/* istanbul ignore next */
/**
+ * Returns the unique identifier used to reference this module.
* @abstract
* @returns {string} a unique identifier of the module
*/
@@ -893,6 +1034,7 @@
/* istanbul ignore next */
/**
+ * Returns a human-readable identifier for this module.
* @abstract
* @param {RequestShortener} requestShortener the request shortener
* @returns {string} a user readable identifier of the module
@@ -905,6 +1047,7 @@
/* istanbul ignore next */
/**
+ * Builds the module using the provided compilation context.
* @abstract
* @param {WebpackOptions} options webpack options
* @param {Compilation} compilation the compilation
@@ -920,6 +1063,7 @@
}
/**
+ * Returns the source types this module can generate.
* @abstract
* @returns {SourceTypes} types available (do not mutate)
*/
@@ -928,18 +1072,32 @@
if (this.source === Module.prototype.source) {
return DEFAULT_TYPES_UNKNOWN;
}
- return JS_TYPES;
+ return JAVASCRIPT_TYPES;
}
/**
+ * Basic source types are high-level categories like javascript, css, webassembly, etc.
+ * We only have built-in knowledge about the javascript basic type here; other basic types may be
+ * added or changed over time by generators and do not need to be handled or detected here.
+ *
+ * Some modules, e.g. RemoteModule, may return non-basic source types like "remote" and "share-init"
+ * from getSourceTypes(), but their generated output is still JavaScript, i.e. their basic type is JS.
+ * @returns {BasicSourceTypes} types available (do not mutate)
+ */
+ getSourceBasicTypes() {
+ return this.getSourceTypes();
+ }
+
+ /**
+ * Returns generated source.
* @abstract
* @deprecated Use codeGeneration() instead
* @param {DependencyTemplates} dependencyTemplates the dependency templates
* @param {RuntimeTemplate} runtimeTemplate the runtime template
- * @param {string=} type the type of source that should be generated
+ * @param {SourceType=} type the type of source that should be generated
* @returns {Source} generated source
*/
- source(dependencyTemplates, runtimeTemplate, type = "javascript") {
+ source(dependencyTemplates, runtimeTemplate, type = JAVASCRIPT_TYPE) {
if (this.codeGeneration === Module.prototype.codeGeneration) {
const AbstractMethodError = require("./AbstractMethodError");
@@ -957,6 +1115,7 @@
moduleGraph: chunkGraph.moduleGraph,
chunkGraph,
runtime: undefined,
+ runtimes: [],
codeGenerationResults: undefined
};
const sources = this.codeGeneration(codeGenContext).sources;
@@ -964,12 +1123,13 @@
return /** @type {Source} */ (
type
? sources.get(type)
- : sources.get(/** @type {string} */ (first(this.getSourceTypes())))
+ : sources.get(/** @type {SourceType} */ (first(this.getSourceTypes())))
);
}
/* istanbul ignore next */
/**
+ * Returns the estimated size for the requested source type.
* @abstract
* @param {string=} type the source type for which the size should be estimated
* @returns {number} the estimated size of the module (must be non-zero)
@@ -981,6 +1141,7 @@
}
/**
+ * Gets the library identifier.
* @param {LibIdentOptions} options options
* @returns {LibIdent | null} an identifier for library inclusion
*/
@@ -989,6 +1150,7 @@
}
/**
+ * Returns the path used when matching this module against rule conditions.
* @returns {NameForCondition | null} absolute path which should be used for condition matching (usually the resource path)
*/
nameForCondition() {
@@ -996,6 +1158,7 @@
}
/**
+ * Returns the reason this module cannot be concatenated, when one exists.
* @param {ConcatenationBailoutReasonContext} context context
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
*/
@@ -1004,6 +1167,7 @@
}
/**
+ * Gets side effects connection state.
* @param {ModuleGraph} moduleGraph the module graph
* @returns {ConnectionState} how this module should be connected to referencing modules when consumed for side-effects only
*/
@@ -1012,14 +1176,16 @@
}
/**
+ * Generates code and runtime requirements for this module.
* @param {CodeGenerationContext} context context for code generation
* @returns {CodeGenerationResult} result
*/
codeGeneration(context) {
// Best override this method
+ /** @type {Sources} */
const sources = new Map();
for (const type of this.getSourceTypes()) {
- if (type !== "unknown") {
+ if (type !== UNKNOWN_TYPE) {
sources.set(
type,
this.source(
@@ -1041,9 +1207,10 @@
}
/**
+ * Returns true if the module can be placed in the chunk.
* @param {Chunk} chunk the chunk which condition should be checked
* @param {Compilation} compilation the compilation
- * @returns {boolean} true, if the chunk is ok for the module
+ * @returns {boolean} true if the module can be placed in the chunk
*/
chunkCondition(chunk, compilation) {
return true;
@@ -1099,6 +1266,7 @@
}
/**
+ * Gets the original source.
* @returns {Source | null} the original source for the module before webpack transformation
*/
originalSource() {
@@ -1106,6 +1274,7 @@
}
/**
+ * Adds the provided file dependencies to the module.
* @param {FileSystemDependencies} fileDependencies set where file dependencies are added to
* @param {FileSystemDependencies} contextDependencies set where context dependencies are added to
* @param {FileSystemDependencies} missingDependencies set where missing dependencies are added to
@@ -1119,6 +1288,7 @@
) {}
/**
+ * Serializes this instance into the provided serializer context.
* @param {ObjectSerializerContext} context context
*/
serialize(context) {
@@ -1149,6 +1319,7 @@
}
/**
+ * Restores this instance from the provided deserializer context.
* @param {ObjectDeserializerContext} context context
*/
deserialize(context) {
@@ -1169,6 +1340,22 @@
this.codeGenerationDependencies = read();
super.deserialize(context);
}
+
+ // TODO remove in webpack 6
+ /**
+ * Gets source basic types.
+ * @deprecated In webpack 6, call getSourceBasicTypes() directly on the module instance instead of using this static method.
+ * @param {Module} module the module
+ * @returns {ReturnType<Module["getSourceBasicTypes"]>} the source types of the module
+ */
+ static getSourceBasicTypes(module) {
+ if (!(module instanceof Module)) {
+ // https://github.com/webpack/webpack/issues/20597
+ // fallback to javascript
+ return JAVASCRIPT_TYPES;
+ }
+ return module.getSourceBasicTypes();
+ }
}
makeSerializable(Module, "webpack/lib/Module");
@@ -1176,6 +1363,7 @@
// TODO remove in webpack 6
Object.defineProperty(Module.prototype, "hasEqualsChunks", {
/**
+ * Gets has equals chunks.
* @deprecated
* @returns {EXPECTED_ANY} throw an error
*/
@@ -1189,6 +1377,7 @@
// TODO remove in webpack 6
Object.defineProperty(Module.prototype, "isUsed", {
/**
+ * Returns throw an error.
* @deprecated
* @returns {EXPECTED_ANY} throw an error
*/
@@ -1202,11 +1391,13 @@
// TODO remove in webpack 6
Object.defineProperty(Module.prototype, "errors", {
/**
+ * Returns errors.
* @deprecated
* @returns {WebpackError[]} errors
*/
get: util.deprecate(
/**
+ * Returns errors.
* @this {Module}
* @returns {WebpackError[]} errors
*/
@@ -1224,11 +1415,13 @@
// TODO remove in webpack 6
Object.defineProperty(Module.prototype, "warnings", {
/**
+ * Returns warnings.
* @deprecated
* @returns {WebpackError[]} warnings
*/
get: util.deprecate(
/**
+ * Returns warnings.
* @this {Module}
* @returns {WebpackError[]} warnings
*/
@@ -1246,6 +1439,7 @@
// TODO remove in webpack 6
Object.defineProperty(Module.prototype, "used", {
/**
+ * Returns throw an error.
* @deprecated
* @returns {EXPECTED_ANY} throw an error
*/
@@ -1255,6 +1449,7 @@
);
},
/**
+ * Updates used using the provided value.
* @param {EXPECTED_ANY} value value
*/
set(value) {
--
Gitblit v1.9.3