webpack 5.106.2 → 5.107.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/APIPlugin.js +1 -1
- package/lib/BannerPlugin.js +3 -4
- package/lib/Cache.js +3 -6
- package/lib/Chunk.js +21 -25
- package/lib/ChunkGroup.js +57 -15
- package/lib/CompatibilityPlugin.js +8 -7
- package/lib/Compilation.js +67 -37
- package/lib/Compiler.js +4 -13
- package/lib/ContextModule.js +2 -2
- package/lib/DefinePlugin.js +2 -2
- package/lib/Dependency.js +22 -1
- package/lib/DependencyTemplate.js +2 -1
- package/lib/EnvironmentPlugin.js +1 -1
- package/lib/EvalSourceMapDevToolPlugin.js +8 -10
- package/lib/ExportsInfo.js +30 -34
- package/lib/ExternalModule.js +91 -26
- package/lib/ExternalModuleFactoryPlugin.js +7 -1
- package/lib/FileSystemInfo.js +187 -72
- package/lib/Generator.js +3 -3
- package/lib/HotModuleReplacementPlugin.js +26 -8
- package/lib/IgnorePlugin.js +2 -1
- package/lib/Module.js +20 -19
- package/lib/ModuleFactory.js +1 -1
- package/lib/ModuleNotFoundError.js +3 -84
- package/lib/ModuleSourceTypeConstants.js +51 -19
- package/lib/ModuleTypeConstants.js +12 -3
- package/lib/MultiCompiler.js +2 -2
- package/lib/NodeStuffPlugin.js +1 -1
- package/lib/NormalModule.js +119 -77
- package/lib/NormalModuleFactory.js +47 -27
- package/lib/Parser.js +1 -1
- package/lib/ProgressPlugin.js +129 -56
- package/lib/RuntimeGlobals.js +5 -5
- package/lib/RuntimeModule.js +9 -7
- package/lib/RuntimePlugin.js +12 -1
- package/lib/SourceMapDevToolPlugin.js +250 -49
- package/lib/Template.js +1 -1
- package/lib/TemplatedPathPlugin.js +22 -4
- package/lib/WarnCaseSensitiveModulesPlugin.js +70 -2
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +16 -1
- package/lib/Watching.js +2 -3
- package/lib/WebpackError.js +3 -77
- package/lib/WebpackIsIncludedPlugin.js +1 -1
- package/lib/WebpackOptionsApply.js +13 -1
- package/lib/asset/AssetBytesGenerator.js +12 -8
- package/lib/asset/AssetGenerator.js +36 -22
- package/lib/asset/AssetModulesPlugin.js +6 -8
- package/lib/asset/AssetSourceGenerator.js +12 -8
- package/lib/buildChunkGraph.js +4 -6
- package/lib/cache/PackFileCacheStrategy.js +4 -4
- package/lib/cli.js +3 -1
- package/lib/config/defaults.js +197 -10
- package/lib/config/normalization.js +3 -1
- package/lib/css/CssGenerator.js +320 -105
- package/lib/css/CssInjectStyleRuntimeModule.js +44 -42
- package/lib/css/CssLoadingRuntimeModule.js +22 -4
- package/lib/{CssModule.js → css/CssModule.js} +15 -15
- package/lib/css/CssModulesPlugin.js +168 -88
- package/lib/css/CssParser.js +566 -269
- package/lib/css/walkCssTokens.js +148 -2
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +1 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +63 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +54 -10
- package/lib/dependencies/CommonJsExportsParserPlugin.js +1 -1
- package/lib/dependencies/CommonJsFullRequireDependency.js +32 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +112 -4
- package/lib/dependencies/CommonJsRequireDependency.js +67 -4
- package/lib/dependencies/ContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +1 -1
- package/lib/dependencies/CreateRequireParserPlugin.js +1 -1
- package/lib/dependencies/CriticalDependencyWarning.js +1 -1
- package/lib/dependencies/CssIcssExportDependency.js +332 -67
- package/lib/dependencies/CssIcssImportDependency.js +49 -7
- package/lib/dependencies/CssIcssSymbolDependency.js +11 -3
- package/lib/dependencies/CssImportDependency.js +8 -0
- package/lib/dependencies/CssUrlDependency.js +28 -2
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +22 -2
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +8 -7
- package/lib/dependencies/HarmonyExportExpressionDependency.js +22 -14
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +110 -3
- package/lib/dependencies/HarmonyImportDependency.js +10 -2
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +1 -1
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
- package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
- package/lib/dependencies/HtmlScriptSrcDependency.js +557 -0
- package/lib/dependencies/HtmlSourceDependency.js +128 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/ImportParserPlugin.js +2 -2
- package/lib/dependencies/ImportPhase.js +1 -1
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +1 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +7 -7
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/WebAssemblyImportDependency.js +1 -1
- package/lib/dependencies/WorkerPlugin.js +2 -2
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +31 -31
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +4 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +2 -2
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +4 -4
- package/lib/{DllModule.js → dll/DllModule.js} +24 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +4 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +6 -5
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +14 -14
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +9 -9
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +2 -2
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +3 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +5 -5
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +4 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +3 -3
- package/lib/errors/JSONParseError.js +114 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +5 -5
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +4 -4
- package/lib/{ModuleError.js → errors/ModuleError.js} +5 -5
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
- package/lib/errors/ModuleNotFoundError.js +91 -0
- package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +8 -6
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +1 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +1 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +5 -5
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +4 -4
- package/lib/errors/NonErrorEmittedError.js +28 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +2 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +3 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/html/HtmlGenerator.js +379 -0
- package/lib/html/HtmlModulesPlugin.js +429 -0
- package/lib/html/HtmlParser.js +1489 -0
- package/lib/html/walkHtmlTokens.js +3249 -0
- package/lib/ids/IdHelpers.js +2 -1
- package/lib/index.js +36 -15
- package/lib/javascript/JavascriptModulesPlugin.js +91 -10
- package/lib/javascript/JavascriptParser.js +197 -16
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/json/JsonParser.js +7 -16
- package/lib/library/AbstractLibraryPlugin.js +1 -1
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
- package/lib/library/ModuleLibraryPlugin.js +74 -0
- package/lib/node/NodeEnvironmentPlugin.js +4 -2
- package/lib/node/nodeConsole.js +113 -64
- package/lib/optimize/ConcatenatedModule.js +51 -6
- package/lib/optimize/InnerGraph.js +1 -1
- package/lib/optimize/InnerGraphPlugin.js +11 -1
- package/lib/optimize/MinMaxSizeWarning.js +4 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +15 -7
- package/lib/optimize/RealContentHashPlugin.js +89 -26
- package/lib/optimize/SideEffectsFlagPlugin.js +112 -5
- package/lib/optimize/SplitChunksPlugin.js +5 -5
- package/lib/performance/AssetsOverSizeLimitWarning.js +2 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +1 -1
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -1
- package/lib/rules/UseEffectRulePlugin.js +4 -3
- package/lib/runtime/AutoPublicPathRuntimeModule.js +3 -3
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +5 -5
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +119 -13
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
- package/lib/schemes/DataUriPlugin.js +13 -1
- package/lib/schemes/VirtualUrlPlugin.js +1 -1
- package/lib/serialization/SerializerMiddleware.js +2 -2
- package/lib/sharing/ConsumeSharedPlugin.js +4 -10
- package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -4
- package/lib/sharing/ProvideSharedModule.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +5 -5
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +2 -2
- package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +1 -1
- package/lib/stats/StatsFactory.js +1 -1
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +2 -2
- package/lib/util/AsyncQueue.js +2 -2
- package/lib/util/Hash.js +2 -2
- package/lib/util/LocConverter.js +53 -0
- package/lib/util/SortableSet.js +1 -1
- package/lib/util/cleverMerge.js +2 -2
- package/lib/util/comparators.js +3 -3
- package/lib/util/concatenate.js +3 -3
- package/lib/util/conventions.js +42 -1
- package/lib/util/createMappings.js +118 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +2 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +3 -1
- package/lib/util/fs.js +8 -8
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +48 -0
- package/lib/util/internalSerializables.js +35 -19
- package/lib/util/magicComment.js +10 -7
- package/lib/util/parseJson.js +2 -73
- package/lib/util/source.js +21 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -4
- package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +5 -3
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +1 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +5 -3
- package/lib/webpack.js +3 -1
- package/package.json +24 -22
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +129 -12
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +22 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +1153 -233
- package/lib/CaseSensitiveModulesWarning.js +0 -80
- package/lib/GraphHelpers.js +0 -49
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -57
- /package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +0 -0
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/Module.js
CHANGED
|
@@ -51,7 +51,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
51
51
|
* @template T
|
|
52
52
|
* @typedef {import("./InitFragment")<T>} InitFragment
|
|
53
53
|
*/
|
|
54
|
-
/** @typedef {import("./WebpackError")} WebpackError */
|
|
54
|
+
/** @typedef {import("./errors/WebpackError")} WebpackError */
|
|
55
55
|
/** @typedef {import("./json/JsonData")} JsonData */
|
|
56
56
|
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
57
57
|
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
@@ -119,7 +119,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
119
119
|
* @typedef {object} AllCodeGenerationSchemas
|
|
120
120
|
* @property {Set<string>} topLevelDeclarations top level declarations for javascript modules
|
|
121
121
|
* @property {InitFragment<EXPECTED_ANY>[]} chunkInitFragments chunk init fragments for javascript modules
|
|
122
|
-
* @property {{ javascript?: string, ["
|
|
122
|
+
* @property {{ javascript?: string, ["asset-url"]?: string }} url url for asset modules
|
|
123
123
|
* @property {string} filename a filename for asset modules
|
|
124
124
|
* @property {AssetInfo} assetInfo an asset info for asset modules
|
|
125
125
|
* @property {string} fullContentHash a full content hash for asset modules
|
|
@@ -129,7 +129,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
129
129
|
/**
|
|
130
130
|
* Defines the code gen value type used by this module.
|
|
131
131
|
* @template {string} K
|
|
132
|
-
* @typedef {K extends keyof AllCodeGenerationSchemas ? AllCodeGenerationSchemas[K] : EXPECTED_ANY} CodeGenValue
|
|
132
|
+
* @typedef {K extends (keyof AllCodeGenerationSchemas) ? AllCodeGenerationSchemas[K] : EXPECTED_ANY} CodeGenValue
|
|
133
133
|
*/
|
|
134
134
|
|
|
135
135
|
/**
|
|
@@ -173,7 +173,8 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
173
173
|
* @property {boolean=} treatAsCommonJs
|
|
174
174
|
* @property {boolean=} async
|
|
175
175
|
* @property {boolean=} sideEffectFree
|
|
176
|
-
* @property {boolean=}
|
|
176
|
+
* @property {boolean=} isCssModule
|
|
177
|
+
* @property {boolean=} needIdInConcatenation
|
|
177
178
|
* @property {Record<string, string>=} jsIncompatibleExports
|
|
178
179
|
* @property {Map<string, Record<string, string>>=} exportsFinalNameByRuntime
|
|
179
180
|
* @property {Map<string, string>=} exportsSourceByRuntime
|
|
@@ -303,9 +304,9 @@ class Module extends DependenciesBlock {
|
|
|
303
304
|
/** @type {boolean} */
|
|
304
305
|
this.hot = false;
|
|
305
306
|
// Info from Build
|
|
306
|
-
/** @type {
|
|
307
|
+
/** @type {Error[] | undefined} */
|
|
307
308
|
this._warnings = undefined;
|
|
308
|
-
/** @type {
|
|
309
|
+
/** @type {Error[] | undefined} */
|
|
309
310
|
this._errors = undefined;
|
|
310
311
|
/** @type {BuildMeta | undefined} */
|
|
311
312
|
this.buildMeta = undefined;
|
|
@@ -782,7 +783,7 @@ class Module extends DependenciesBlock {
|
|
|
782
783
|
|
|
783
784
|
/**
|
|
784
785
|
* Adds the provided warning to the module.
|
|
785
|
-
* @param {
|
|
786
|
+
* @param {Error} warning the warning
|
|
786
787
|
* @returns {void}
|
|
787
788
|
*/
|
|
788
789
|
addWarning(warning) {
|
|
@@ -794,7 +795,7 @@ class Module extends DependenciesBlock {
|
|
|
794
795
|
|
|
795
796
|
/**
|
|
796
797
|
* Returns list of warnings if any.
|
|
797
|
-
* @returns {
|
|
798
|
+
* @returns {Error[] | undefined} list of warnings if any
|
|
798
799
|
*/
|
|
799
800
|
getWarnings() {
|
|
800
801
|
return this._warnings;
|
|
@@ -810,7 +811,7 @@ class Module extends DependenciesBlock {
|
|
|
810
811
|
|
|
811
812
|
/**
|
|
812
813
|
* Adds the provided error to the module.
|
|
813
|
-
* @param {
|
|
814
|
+
* @param {Error} error the error
|
|
814
815
|
* @returns {void}
|
|
815
816
|
*/
|
|
816
817
|
addError(error) {
|
|
@@ -822,7 +823,7 @@ class Module extends DependenciesBlock {
|
|
|
822
823
|
|
|
823
824
|
/**
|
|
824
825
|
* Returns list of errors if any.
|
|
825
|
-
* @returns {
|
|
826
|
+
* @returns {Error[] | undefined} list of errors if any
|
|
826
827
|
*/
|
|
827
828
|
getErrors() {
|
|
828
829
|
return this._errors;
|
|
@@ -1027,7 +1028,7 @@ class Module extends DependenciesBlock {
|
|
|
1027
1028
|
* @returns {string} a unique identifier of the module
|
|
1028
1029
|
*/
|
|
1029
1030
|
identifier() {
|
|
1030
|
-
const AbstractMethodError = require("./AbstractMethodError");
|
|
1031
|
+
const AbstractMethodError = require("./errors/AbstractMethodError");
|
|
1031
1032
|
|
|
1032
1033
|
throw new AbstractMethodError();
|
|
1033
1034
|
}
|
|
@@ -1040,7 +1041,7 @@ class Module extends DependenciesBlock {
|
|
|
1040
1041
|
* @returns {string} a user readable identifier of the module
|
|
1041
1042
|
*/
|
|
1042
1043
|
readableIdentifier(requestShortener) {
|
|
1043
|
-
const AbstractMethodError = require("./AbstractMethodError");
|
|
1044
|
+
const AbstractMethodError = require("./errors/AbstractMethodError");
|
|
1044
1045
|
|
|
1045
1046
|
throw new AbstractMethodError();
|
|
1046
1047
|
}
|
|
@@ -1057,7 +1058,7 @@ class Module extends DependenciesBlock {
|
|
|
1057
1058
|
* @returns {void}
|
|
1058
1059
|
*/
|
|
1059
1060
|
build(options, compilation, resolver, fs, callback) {
|
|
1060
|
-
const AbstractMethodError = require("./AbstractMethodError");
|
|
1061
|
+
const AbstractMethodError = require("./errors/AbstractMethodError");
|
|
1061
1062
|
|
|
1062
1063
|
throw new AbstractMethodError();
|
|
1063
1064
|
}
|
|
@@ -1099,7 +1100,7 @@ class Module extends DependenciesBlock {
|
|
|
1099
1100
|
*/
|
|
1100
1101
|
source(dependencyTemplates, runtimeTemplate, type = JAVASCRIPT_TYPE) {
|
|
1101
1102
|
if (this.codeGeneration === Module.prototype.codeGeneration) {
|
|
1102
|
-
const AbstractMethodError = require("./AbstractMethodError");
|
|
1103
|
+
const AbstractMethodError = require("./errors/AbstractMethodError");
|
|
1103
1104
|
|
|
1104
1105
|
throw new AbstractMethodError();
|
|
1105
1106
|
}
|
|
@@ -1135,7 +1136,7 @@ class Module extends DependenciesBlock {
|
|
|
1135
1136
|
* @returns {number} the estimated size of the module (must be non-zero)
|
|
1136
1137
|
*/
|
|
1137
1138
|
size(type) {
|
|
1138
|
-
const AbstractMethodError = require("./AbstractMethodError");
|
|
1139
|
+
const AbstractMethodError = require("./errors/AbstractMethodError");
|
|
1139
1140
|
|
|
1140
1141
|
throw new AbstractMethodError();
|
|
1141
1142
|
}
|
|
@@ -1393,13 +1394,13 @@ Object.defineProperty(Module.prototype, "errors", {
|
|
|
1393
1394
|
/**
|
|
1394
1395
|
* Returns errors.
|
|
1395
1396
|
* @deprecated
|
|
1396
|
-
* @returns {
|
|
1397
|
+
* @returns {Error[]} errors
|
|
1397
1398
|
*/
|
|
1398
1399
|
get: util.deprecate(
|
|
1399
1400
|
/**
|
|
1400
1401
|
* Returns errors.
|
|
1401
1402
|
* @this {Module}
|
|
1402
|
-
* @returns {
|
|
1403
|
+
* @returns {Error[]} errors
|
|
1403
1404
|
*/
|
|
1404
1405
|
function errors() {
|
|
1405
1406
|
if (this._errors === undefined) {
|
|
@@ -1417,13 +1418,13 @@ Object.defineProperty(Module.prototype, "warnings", {
|
|
|
1417
1418
|
/**
|
|
1418
1419
|
* Returns warnings.
|
|
1419
1420
|
* @deprecated
|
|
1420
|
-
* @returns {
|
|
1421
|
+
* @returns {Error[]} warnings
|
|
1421
1422
|
*/
|
|
1422
1423
|
get: util.deprecate(
|
|
1423
1424
|
/**
|
|
1424
1425
|
* Returns warnings.
|
|
1425
1426
|
* @this {Module}
|
|
1426
|
-
* @returns {
|
|
1427
|
+
* @returns {Error[]} warnings
|
|
1427
1428
|
*/
|
|
1428
1429
|
function warnings() {
|
|
1429
1430
|
if (this._warnings === undefined) {
|
package/lib/ModuleFactory.js
CHANGED
|
@@ -5,87 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/** @typedef {import("./Module")} Module */
|
|
12
|
-
|
|
13
|
-
const previouslyPolyfilledBuiltinModules = {
|
|
14
|
-
assert: "assert/",
|
|
15
|
-
buffer: "buffer/",
|
|
16
|
-
console: "console-browserify",
|
|
17
|
-
constants: "constants-browserify",
|
|
18
|
-
crypto: "crypto-browserify",
|
|
19
|
-
domain: "domain-browser",
|
|
20
|
-
events: "events/",
|
|
21
|
-
http: "stream-http",
|
|
22
|
-
https: "https-browserify",
|
|
23
|
-
os: "os-browserify/browser",
|
|
24
|
-
path: "path-browserify",
|
|
25
|
-
punycode: "punycode/",
|
|
26
|
-
process: "process/browser",
|
|
27
|
-
querystring: "querystring-es3",
|
|
28
|
-
stream: "stream-browserify",
|
|
29
|
-
_stream_duplex: "readable-stream/duplex",
|
|
30
|
-
_stream_passthrough: "readable-stream/passthrough",
|
|
31
|
-
_stream_readable: "readable-stream/readable",
|
|
32
|
-
_stream_transform: "readable-stream/transform",
|
|
33
|
-
_stream_writable: "readable-stream/writable",
|
|
34
|
-
string_decoder: "string_decoder/",
|
|
35
|
-
sys: "util/",
|
|
36
|
-
timers: "timers-browserify",
|
|
37
|
-
tty: "tty-browserify",
|
|
38
|
-
url: "url/",
|
|
39
|
-
util: "util/",
|
|
40
|
-
vm: "vm-browserify",
|
|
41
|
-
zlib: "browserify-zlib"
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
class ModuleNotFoundError extends WebpackError {
|
|
45
|
-
/**
|
|
46
|
-
* Creates an instance of ModuleNotFoundError.
|
|
47
|
-
* @param {Module | null} module module tied to dependency
|
|
48
|
-
* @param {Error & { details?: string }} err error thrown
|
|
49
|
-
* @param {DependencyLocation} loc location of dependency
|
|
50
|
-
*/
|
|
51
|
-
constructor(module, err, loc) {
|
|
52
|
-
let message = `Module not found: ${err.toString()}`;
|
|
53
|
-
|
|
54
|
-
// TODO remove in webpack 6
|
|
55
|
-
const match = err.message.match(/Can't resolve '([^']+)'/);
|
|
56
|
-
if (match) {
|
|
57
|
-
const request = match[1];
|
|
58
|
-
const alias =
|
|
59
|
-
previouslyPolyfilledBuiltinModules[
|
|
60
|
-
/** @type {keyof previouslyPolyfilledBuiltinModules} */ (request)
|
|
61
|
-
];
|
|
62
|
-
if (alias) {
|
|
63
|
-
const pathIndex = alias.indexOf("/");
|
|
64
|
-
const dependency = pathIndex > 0 ? alias.slice(0, pathIndex) : alias;
|
|
65
|
-
message +=
|
|
66
|
-
"\n\n" +
|
|
67
|
-
"BREAKING CHANGE: " +
|
|
68
|
-
"webpack < 5 used to include polyfills for node.js core modules by default.\n" +
|
|
69
|
-
"This is no longer the case. Verify if you need this module and configure a polyfill for it.\n\n";
|
|
70
|
-
message +=
|
|
71
|
-
"If you want to include a polyfill, you need to:\n" +
|
|
72
|
-
`\t- add a fallback 'resolve.fallback: { "${request}": require.resolve("${alias}") }'\n` +
|
|
73
|
-
`\t- install '${dependency}'\n`;
|
|
74
|
-
message +=
|
|
75
|
-
"If you don't want to include a polyfill, you can use an empty module like this:\n" +
|
|
76
|
-
`\tresolve.fallback: { "${request}": false }`;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
super(message);
|
|
81
|
-
|
|
82
|
-
/** @type {string} */
|
|
83
|
-
this.name = "ModuleNotFoundError";
|
|
84
|
-
this.details = err.details;
|
|
85
|
-
this.module = module;
|
|
86
|
-
this.error = err;
|
|
87
|
-
this.loc = loc;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
module.exports = ModuleNotFoundError;
|
|
8
|
+
// TODO remove in webpack 6
|
|
9
|
+
// Some old plugins use `require("webpack/lib/ModuleNotFoundError")`, in webpack@6 developer should migrate to `compiler.webpack.ModuleNotFoundError`
|
|
10
|
+
module.exports = require("./errors/ModuleNotFoundError");
|
|
@@ -25,6 +25,11 @@ const WEBASSEMBLY_TYPE = "webassembly";
|
|
|
25
25
|
*/
|
|
26
26
|
const ASSET_TYPE = "asset";
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* @type {Readonly<"asset-url">}
|
|
30
|
+
*/
|
|
31
|
+
const ASSET_URL_TYPE = "asset-url";
|
|
32
|
+
|
|
28
33
|
/**
|
|
29
34
|
* @type {Readonly<"css">}
|
|
30
35
|
*/
|
|
@@ -36,9 +41,14 @@ const CSS_TYPE = "css";
|
|
|
36
41
|
const CSS_IMPORT_TYPE = "css-import";
|
|
37
42
|
|
|
38
43
|
/**
|
|
39
|
-
* @type {Readonly<"css-
|
|
44
|
+
* @type {Readonly<"css-text">}
|
|
40
45
|
*/
|
|
41
|
-
const
|
|
46
|
+
const CSS_TEXT_TYPE = "css-text";
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @type {Readonly<"html">}
|
|
50
|
+
*/
|
|
51
|
+
const HTML_TYPE = "html";
|
|
42
52
|
|
|
43
53
|
/**
|
|
44
54
|
* @type {Readonly<"share-init">}
|
|
@@ -62,7 +72,7 @@ const UNKNOWN_TYPE = "unknown";
|
|
|
62
72
|
|
|
63
73
|
/**
|
|
64
74
|
* Defines the all types type used by this module.
|
|
65
|
-
* @typedef {JAVASCRIPT_TYPE | RUNTIME_TYPE | WEBASSEMBLY_TYPE | ASSET_TYPE | CSS_TYPE | CSS_IMPORT_TYPE |
|
|
75
|
+
* @typedef {JAVASCRIPT_TYPE | RUNTIME_TYPE | WEBASSEMBLY_TYPE | ASSET_TYPE | ASSET_URL_TYPE | CSS_TYPE | CSS_IMPORT_TYPE | CSS_TEXT_TYPE | HTML_TYPE | SHARED_INIT_TYPE | REMOTE_GENERATOR_TYPE | CONSUME_SHARED_GENERATOR_TYPE | UNKNOWN_TYPE} AllTypes
|
|
66
76
|
*/
|
|
67
77
|
|
|
68
78
|
/**
|
|
@@ -81,17 +91,17 @@ const ASSET_TYPES = new Set([ASSET_TYPE]);
|
|
|
81
91
|
const ASSET_AND_JAVASCRIPT_TYPES = new Set([ASSET_TYPE, JAVASCRIPT_TYPE]);
|
|
82
92
|
|
|
83
93
|
/**
|
|
84
|
-
* @type {ReadonlySet<"
|
|
94
|
+
* @type {ReadonlySet<"asset-url" | "asset">}
|
|
85
95
|
*/
|
|
86
|
-
const
|
|
96
|
+
const ASSET_AND_ASSET_URL_TYPES = new Set([ASSET_TYPE, ASSET_URL_TYPE]);
|
|
87
97
|
|
|
88
98
|
/**
|
|
89
|
-
* @type {ReadonlySet<"javascript" | "
|
|
99
|
+
* @type {ReadonlySet<"javascript" | "asset-url" | "asset">}
|
|
90
100
|
*/
|
|
91
|
-
const
|
|
101
|
+
const ASSET_AND_JAVASCRIPT_AND_ASSET_URL_TYPES = new Set([
|
|
92
102
|
ASSET_TYPE,
|
|
93
103
|
JAVASCRIPT_TYPE,
|
|
94
|
-
|
|
104
|
+
ASSET_URL_TYPE
|
|
95
105
|
]);
|
|
96
106
|
|
|
97
107
|
/**
|
|
@@ -100,9 +110,12 @@ const ASSET_AND_JAVASCRIPT_AND_CSS_URL_TYPES = new Set([
|
|
|
100
110
|
const JAVASCRIPT_TYPES = new Set([JAVASCRIPT_TYPE]);
|
|
101
111
|
|
|
102
112
|
/**
|
|
103
|
-
* @type {ReadonlySet<"javascript" | "
|
|
113
|
+
* @type {ReadonlySet<"javascript" | "asset-url">}
|
|
104
114
|
*/
|
|
105
|
-
const
|
|
115
|
+
const JAVASCRIPT_AND_ASSET_URL_TYPES = new Set([
|
|
116
|
+
JAVASCRIPT_TYPE,
|
|
117
|
+
ASSET_URL_TYPE
|
|
118
|
+
]);
|
|
106
119
|
|
|
107
120
|
/**
|
|
108
121
|
* @type {ReadonlySet<"javascript" | "css">}
|
|
@@ -115,14 +128,29 @@ const JAVASCRIPT_AND_CSS_TYPES = new Set([JAVASCRIPT_TYPE, CSS_TYPE]);
|
|
|
115
128
|
const CSS_TYPES = new Set([CSS_TYPE]);
|
|
116
129
|
|
|
117
130
|
/**
|
|
118
|
-
* @type {ReadonlySet<"
|
|
131
|
+
* @type {ReadonlySet<"asset-url">}
|
|
132
|
+
*/
|
|
133
|
+
const ASSET_URL_TYPES = new Set([ASSET_URL_TYPE]);
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* @type {ReadonlySet<"css-text">}
|
|
137
|
+
*/
|
|
138
|
+
const CSS_TEXT_TYPES = new Set([CSS_TEXT_TYPE]);
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @type {ReadonlySet<"javascript" | "css-text">}
|
|
119
142
|
*/
|
|
120
|
-
const
|
|
143
|
+
const JAVASCRIPT_AND_CSS_TEXT_TYPES = new Set([JAVASCRIPT_TYPE, CSS_TEXT_TYPE]);
|
|
121
144
|
/**
|
|
122
145
|
* @type {ReadonlySet<"css-import">}
|
|
123
146
|
*/
|
|
124
147
|
const CSS_IMPORT_TYPES = new Set([CSS_IMPORT_TYPE]);
|
|
125
148
|
|
|
149
|
+
/**
|
|
150
|
+
* @type {ReadonlySet<"html">}
|
|
151
|
+
*/
|
|
152
|
+
const HTML_TYPES = new Set([HTML_TYPE]);
|
|
153
|
+
|
|
126
154
|
/**
|
|
127
155
|
* @type {ReadonlySet<"webassembly">}
|
|
128
156
|
*/
|
|
@@ -151,22 +179,26 @@ const CONSUME_SHARED_TYPES = new Set([CONSUME_SHARED_GENERATOR_TYPE]);
|
|
|
151
179
|
*/
|
|
152
180
|
const SHARED_INIT_TYPES = new Set([SHARED_INIT_TYPE]);
|
|
153
181
|
|
|
154
|
-
module.exports.
|
|
155
|
-
module.exports.
|
|
156
|
-
|
|
182
|
+
module.exports.ASSET_AND_ASSET_URL_TYPES = ASSET_AND_ASSET_URL_TYPES;
|
|
183
|
+
module.exports.ASSET_AND_JAVASCRIPT_AND_ASSET_URL_TYPES =
|
|
184
|
+
ASSET_AND_JAVASCRIPT_AND_ASSET_URL_TYPES;
|
|
157
185
|
module.exports.ASSET_AND_JAVASCRIPT_TYPES = ASSET_AND_JAVASCRIPT_TYPES;
|
|
158
186
|
module.exports.ASSET_TYPE = ASSET_TYPE;
|
|
159
187
|
module.exports.ASSET_TYPES = ASSET_TYPES;
|
|
188
|
+
module.exports.ASSET_URL_TYPE = ASSET_URL_TYPE;
|
|
189
|
+
module.exports.ASSET_URL_TYPES = ASSET_URL_TYPES;
|
|
160
190
|
module.exports.CONSUME_SHARED_TYPES = CONSUME_SHARED_TYPES;
|
|
161
191
|
module.exports.CSS_IMPORT_TYPE = CSS_IMPORT_TYPE;
|
|
162
192
|
module.exports.CSS_IMPORT_TYPES = CSS_IMPORT_TYPES;
|
|
163
|
-
module.exports.
|
|
193
|
+
module.exports.CSS_TEXT_TYPE = CSS_TEXT_TYPE;
|
|
194
|
+
module.exports.CSS_TEXT_TYPES = CSS_TEXT_TYPES;
|
|
164
195
|
module.exports.CSS_TYPE = CSS_TYPE;
|
|
165
196
|
module.exports.CSS_TYPES = CSS_TYPES;
|
|
166
|
-
module.exports.
|
|
167
|
-
module.exports.
|
|
197
|
+
module.exports.HTML_TYPE = HTML_TYPE;
|
|
198
|
+
module.exports.HTML_TYPES = HTML_TYPES;
|
|
199
|
+
module.exports.JAVASCRIPT_AND_ASSET_URL_TYPES = JAVASCRIPT_AND_ASSET_URL_TYPES;
|
|
200
|
+
module.exports.JAVASCRIPT_AND_CSS_TEXT_TYPES = JAVASCRIPT_AND_CSS_TEXT_TYPES;
|
|
168
201
|
module.exports.JAVASCRIPT_AND_CSS_TYPES = JAVASCRIPT_AND_CSS_TYPES;
|
|
169
|
-
module.exports.JAVASCRIPT_AND_CSS_URL_TYPES = JAVASCRIPT_AND_CSS_URL_TYPES;
|
|
170
202
|
module.exports.JAVASCRIPT_TYPE = JAVASCRIPT_TYPE;
|
|
171
203
|
module.exports.JAVASCRIPT_TYPES = JAVASCRIPT_TYPES;
|
|
172
204
|
module.exports.NO_TYPES = NO_TYPES;
|
|
@@ -65,6 +65,13 @@ const CSS_MODULE_TYPE_MODULE = "css/module";
|
|
|
65
65
|
*/
|
|
66
66
|
const CSS_MODULE_TYPE_AUTO = "css/auto";
|
|
67
67
|
|
|
68
|
+
/**
|
|
69
|
+
* @type {Readonly<"html">}
|
|
70
|
+
* This is the module type used for HTML files when `experiments.html` is enabled.
|
|
71
|
+
* HTML modules are emitted as HTML assets and can be used as entry points.
|
|
72
|
+
*/
|
|
73
|
+
const HTML_MODULE_TYPE = "html";
|
|
74
|
+
|
|
68
75
|
/**
|
|
69
76
|
* @type {Readonly<"asset">}
|
|
70
77
|
* This is the module type used for automatically choosing between `asset/inline`, `asset/resource` based on asset size limit (8096).
|
|
@@ -140,11 +147,12 @@ const WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = "lazy-compilation-proxy";
|
|
|
140
147
|
/** @typedef {"javascript/auto" | "javascript/dynamic" | "javascript/esm"} JavaScriptModuleTypes */
|
|
141
148
|
/** @typedef {"json"} JSONModuleType */
|
|
142
149
|
/** @typedef {"webassembly/async" | "webassembly/sync"} WebAssemblyModuleTypes */
|
|
143
|
-
/** @typedef {"css" | "css/global" | "css/module" | "css/auto"}
|
|
150
|
+
/** @typedef {"css" | "css/global" | "css/module" | "css/auto"} CssModuleTypes */
|
|
151
|
+
/** @typedef {"html"} HTMLModuleType */
|
|
144
152
|
/** @typedef {"asset" | "asset/inline" | "asset/resource" | "asset/source" | "asset/raw-data-url"} AssetModuleTypes */
|
|
145
153
|
/** @typedef {"runtime" | "fallback-module" | "remote-module" | "provide-module" | "consume-shared-module" | "lazy-compilation-proxy"} WebpackModuleTypes */
|
|
146
154
|
/** @typedef {string} UnknownModuleTypes */
|
|
147
|
-
/** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes |
|
|
155
|
+
/** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes | CssModuleTypes | HTMLModuleType | AssetModuleTypes | WebpackModuleTypes | UnknownModuleTypes} ModuleTypes */
|
|
148
156
|
|
|
149
157
|
module.exports.ASSET_MODULE_TYPE = ASSET_MODULE_TYPE;
|
|
150
158
|
module.exports.ASSET_MODULE_TYPE_BYTES = ASSET_MODULE_TYPE_BYTES;
|
|
@@ -152,7 +160,7 @@ module.exports.ASSET_MODULE_TYPE_INLINE = ASSET_MODULE_TYPE_INLINE;
|
|
|
152
160
|
module.exports.ASSET_MODULE_TYPE_RAW_DATA_URL = ASSET_MODULE_TYPE_RAW_DATA_URL;
|
|
153
161
|
module.exports.ASSET_MODULE_TYPE_RESOURCE = ASSET_MODULE_TYPE_RESOURCE;
|
|
154
162
|
module.exports.ASSET_MODULE_TYPE_SOURCE = ASSET_MODULE_TYPE_SOURCE;
|
|
155
|
-
/** @type {
|
|
163
|
+
/** @type {CssModuleTypes[]} */
|
|
156
164
|
module.exports.CSS_MODULES = [
|
|
157
165
|
CSS_MODULE_TYPE,
|
|
158
166
|
CSS_MODULE_TYPE_GLOBAL,
|
|
@@ -163,6 +171,7 @@ module.exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE;
|
|
|
163
171
|
module.exports.CSS_MODULE_TYPE_AUTO = CSS_MODULE_TYPE_AUTO;
|
|
164
172
|
module.exports.CSS_MODULE_TYPE_GLOBAL = CSS_MODULE_TYPE_GLOBAL;
|
|
165
173
|
module.exports.CSS_MODULE_TYPE_MODULE = CSS_MODULE_TYPE_MODULE;
|
|
174
|
+
module.exports.HTML_MODULE_TYPE = HTML_MODULE_TYPE;
|
|
166
175
|
/** @type {JavaScriptModuleTypes[]} */
|
|
167
176
|
module.exports.JAVASCRIPT_MODULES = [
|
|
168
177
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
package/lib/MultiCompiler.js
CHANGED
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
const asyncLib = require("neo-async");
|
|
9
9
|
const { MultiHook, SyncHook } = require("tapable");
|
|
10
10
|
|
|
11
|
-
const ConcurrentCompilationError = require("./ConcurrentCompilationError");
|
|
12
11
|
const MultiStats = require("./MultiStats");
|
|
13
12
|
const MultiWatching = require("./MultiWatching");
|
|
14
|
-
const
|
|
13
|
+
const ConcurrentCompilationError = require("./errors/ConcurrentCompilationError");
|
|
14
|
+
const WebpackError = require("./errors/WebpackError");
|
|
15
15
|
const ArrayQueue = require("./util/ArrayQueue");
|
|
16
16
|
|
|
17
17
|
/**
|
package/lib/NodeStuffPlugin.js
CHANGED
|
@@ -10,13 +10,13 @@ const {
|
|
|
10
10
|
JAVASCRIPT_MODULE_TYPE_DYNAMIC,
|
|
11
11
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
12
12
|
} = require("./ModuleTypeConstants");
|
|
13
|
-
const NodeStuffInWebError = require("./NodeStuffInWebError");
|
|
14
13
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
15
14
|
const CachedConstDependency = require("./dependencies/CachedConstDependency");
|
|
16
15
|
const ConstDependency = require("./dependencies/ConstDependency");
|
|
17
16
|
const ExternalModuleDependency = require("./dependencies/ExternalModuleDependency");
|
|
18
17
|
const ExternalModuleInitFragmentDependency = require("./dependencies/ExternalModuleInitFragmentDependency");
|
|
19
18
|
const ImportMetaPlugin = require("./dependencies/ImportMetaPlugin");
|
|
19
|
+
const NodeStuffInWebError = require("./errors/NodeStuffInWebError");
|
|
20
20
|
const { evaluateToString } = require("./javascript/JavascriptParserHelpers");
|
|
21
21
|
const { relative } = require("./util/fs");
|
|
22
22
|
const { parseResource } = require("./util/identifier");
|