webpack 5.92.1 → 5.94.0
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 +8 -5
- package/bin/webpack.js +6 -7
- package/hot/log.js +1 -2
- package/hot/only-dev-server.js +1 -1
- package/hot/poll.js +1 -1
- package/hot/signal.js +1 -1
- package/lib/APIPlugin.js +4 -3
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +12 -6
- package/lib/Cache.js +8 -10
- package/lib/CacheFacade.js +3 -3
- package/lib/CaseSensitiveModulesWarning.js +5 -7
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +58 -36
- package/lib/ChunkGroup.js +2 -3
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +10 -11
- package/lib/CodeGenerationResults.js +6 -5
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/Compilation.js +223 -191
- package/lib/Compiler.js +81 -82
- package/lib/ConcatenationScope.js +3 -6
- package/lib/ConditionalInitFragment.js +6 -7
- package/lib/ConstPlugin.js +7 -15
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +36 -21
- package/lib/ContextModuleFactory.js +89 -44
- package/lib/ContextReplacementPlugin.js +10 -9
- package/lib/DefinePlugin.js +76 -69
- package/lib/DelegatedModule.js +7 -3
- package/lib/DelegatedModuleFactoryPlugin.js +36 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +0 -1
- package/lib/Dependency.js +10 -14
- package/lib/DllEntryPlugin.js +4 -2
- package/lib/DllModuleFactory.js +1 -0
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +30 -15
- package/lib/EntryPlugin.js +1 -3
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +11 -12
- package/lib/EvalDevToolModulePlugin.js +10 -12
- package/lib/EvalSourceMapDevToolPlugin.js +15 -13
- package/lib/ExportsInfo.js +185 -120
- package/lib/ExternalModule.js +104 -64
- package/lib/ExternalModuleFactoryPlugin.js +23 -10
- package/lib/FileSystemInfo.js +791 -422
- package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
- package/lib/FlagDependencyExportsPlugin.js +12 -11
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +2 -5
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +8 -10
- package/lib/HotModuleReplacementPlugin.js +78 -64
- package/lib/IgnoreErrorModuleFactory.js +3 -3
- package/lib/IgnorePlugin.js +1 -3
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +2 -3
- package/lib/LibManifestPlugin.js +4 -3
- package/lib/MainTemplate.js +72 -19
- package/lib/Module.js +25 -9
- package/lib/ModuleBuildError.js +4 -11
- package/lib/ModuleDependencyError.js +5 -5
- package/lib/ModuleDependencyWarning.js +5 -5
- package/lib/ModuleError.js +1 -5
- package/lib/ModuleFilenameHelpers.js +29 -46
- package/lib/ModuleGraph.js +7 -6
- package/lib/ModuleGraphConnection.js +6 -6
- package/lib/ModuleInfoHeaderPlugin.js +82 -30
- package/lib/ModuleParseError.js +8 -9
- package/lib/ModuleRestoreError.js +1 -1
- package/lib/ModuleStoreError.js +1 -1
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +21 -22
- package/lib/ModuleWarning.js +1 -5
- package/lib/MultiCompiler.js +24 -26
- package/lib/MultiStats.js +73 -31
- package/lib/MultiWatching.js +1 -1
- package/lib/NormalModule.js +132 -70
- package/lib/NormalModuleFactory.js +53 -49
- package/lib/OptimizationStages.js +3 -3
- package/lib/ProgressPlugin.js +9 -9
- package/lib/ProvidePlugin.js +4 -4
- package/lib/RuntimeGlobals.js +71 -70
- package/lib/RuntimeModule.js +1 -1
- package/lib/RuntimePlugin.js +24 -12
- package/lib/RuntimeTemplate.js +40 -44
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolPlugin.js +42 -34
- package/lib/Stats.js +5 -11
- package/lib/Template.js +18 -24
- package/lib/TemplatedPathPlugin.js +12 -10
- package/lib/UseStrictPlugin.js +8 -1
- package/lib/WarnDeprecatedOptionPlugin.js +0 -1
- package/lib/WatchIgnorePlugin.js +26 -9
- package/lib/Watching.js +10 -5
- package/lib/WebpackOptionsApply.js +89 -62
- package/lib/asset/AssetGenerator.js +107 -42
- package/lib/asset/AssetModulesPlugin.js +29 -23
- package/lib/asset/AssetSourceGenerator.js +2 -7
- package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
- package/lib/buildChunkGraph.js +14 -19
- package/lib/cache/IdleFileCachePlugin.js +4 -4
- package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
- package/lib/cache/PackFileCacheStrategy.js +51 -50
- package/lib/cache/ResolverCachePlugin.js +6 -6
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +148 -104
- package/lib/config/browserslistTargetHandler.js +16 -13
- package/lib/config/defaults.js +31 -28
- package/lib/config/normalization.js +335 -344
- package/lib/config/target.js +42 -52
- package/lib/container/ContainerEntryModule.js +2 -2
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/RemoteRuntimeModule.js +11 -8
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +39 -40
- package/lib/css/CssGenerator.js +11 -14
- package/lib/css/CssLoadingRuntimeModule.js +10 -10
- package/lib/css/CssModulesPlugin.js +127 -47
- package/lib/css/CssParser.js +20 -18
- package/lib/css/walkCssTokens.js +80 -95
- package/lib/debug/ProfilingPlugin.js +19 -20
- package/lib/dependencies/AMDDefineDependency.js +1 -1
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
- package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
- package/lib/dependencies/CommonJsExportsDependency.js +0 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
- package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
- package/lib/dependencies/ConstDependency.js +1 -1
- package/lib/dependencies/ContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +31 -34
- package/lib/dependencies/ContextElementDependency.js +2 -2
- package/lib/dependencies/CriticalDependencyWarning.js +1 -1
- package/lib/dependencies/CssExportDependency.js +72 -9
- package/lib/dependencies/CssImportDependency.js +0 -2
- package/lib/dependencies/CssLocalIdentifierDependency.js +68 -21
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +4 -5
- package/lib/dependencies/DynamicExports.js +5 -5
- package/lib/dependencies/ExportsInfoDependency.js +1 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
- package/lib/dependencies/HarmonyExports.js +2 -2
- package/lib/dependencies/HarmonyImportDependency.js +2 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +41 -16
- package/lib/dependencies/ImportDependency.js +1 -1
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
- package/lib/dependencies/ImportMetaPlugin.js +11 -13
- package/lib/dependencies/ImportParserPlugin.js +39 -44
- package/lib/dependencies/JsonExportsDependency.js +22 -18
- package/lib/dependencies/LoaderPlugin.js +47 -36
- package/lib/dependencies/LocalModule.js +1 -1
- package/lib/dependencies/LocalModulesHelpers.js +4 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
- package/lib/dependencies/ProvidedDependency.js +1 -1
- package/lib/dependencies/PureExpressionDependency.js +6 -6
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLDependency.js +3 -3
- package/lib/dependencies/URLPlugin.js +66 -12
- package/lib/dependencies/WorkerPlugin.js +25 -24
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +11 -12
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
- package/lib/hmr/LazyCompilationPlugin.js +27 -12
- package/lib/hmr/lazyCompilationBackend.js +64 -40
- package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +5 -1
- package/lib/ids/IdHelpers.js +29 -39
- package/lib/ids/SyncModuleIdsPlugin.js +7 -2
- package/lib/index.js +1 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +6 -4
- package/lib/javascript/BasicEvaluatedExpression.js +4 -19
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -11
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
- package/lib/javascript/JavascriptGenerator.js +23 -7
- package/lib/javascript/JavascriptModulesPlugin.js +97 -70
- package/lib/javascript/JavascriptParser.js +179 -200
- package/lib/javascript/JavascriptParserHelpers.js +20 -21
- package/lib/javascript/StartupHelpers.js +41 -13
- package/lib/json/JsonGenerator.js +7 -13
- package/lib/json/JsonModulesPlugin.js +1 -4
- package/lib/json/JsonParser.js +5 -3
- package/lib/library/AmdLibraryPlugin.js +12 -16
- package/lib/library/AssignLibraryPlugin.js +9 -11
- package/lib/library/EnableLibraryPlugin.js +25 -15
- package/lib/library/ExportPropertyLibraryPlugin.js +8 -2
- package/lib/library/JsonpLibraryPlugin.js +2 -1
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +2 -1
- package/lib/library/SystemLibraryPlugin.js +2 -1
- package/lib/library/UmdLibraryPlugin.js +66 -92
- package/lib/logging/Logger.js +32 -4
- package/lib/logging/createConsoleLogger.js +12 -13
- package/lib/logging/runtime.js +7 -8
- package/lib/logging/truncateArgs.js +5 -8
- package/lib/node/NodeWatchFileSystem.js +3 -18
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
- package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/nodeConsole.js +22 -22
- package/lib/optimize/AggressiveMergingPlugin.js +2 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
- package/lib/optimize/ConcatenatedModule.js +144 -61
- package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
- package/lib/optimize/InnerGraph.js +17 -17
- package/lib/optimize/InnerGraphPlugin.js +8 -7
- package/lib/optimize/LimitChunkCountPlugin.js +2 -3
- package/lib/optimize/MangleExportsPlugin.js +1 -0
- package/lib/optimize/MinMaxSizeWarning.js +1 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +56 -78
- package/lib/optimize/RealContentHashPlugin.js +7 -10
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
- package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
- package/lib/optimize/SplitChunksPlugin.js +34 -30
- package/lib/performance/SizeLimitsPlugin.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
- package/lib/rules/BasicEffectRulePlugin.js +3 -1
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
- package/lib/rules/RuleSetCompiler.js +41 -22
- package/lib/rules/UseEffectRulePlugin.js +36 -32
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
- package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
- package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +241 -126
- package/lib/serialization/BinaryMiddleware.js +44 -28
- package/lib/serialization/DateObjectSerializer.js +1 -0
- package/lib/serialization/ErrorObjectSerializer.js +2 -0
- package/lib/serialization/FileMiddleware.js +154 -106
- package/lib/serialization/MapObjectSerializer.js +2 -1
- package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
- package/lib/serialization/ObjectMiddleware.js +52 -56
- package/lib/serialization/PlainObjectSerializer.js +32 -6
- package/lib/serialization/RegExpObjectSerializer.js +1 -0
- package/lib/serialization/Serializer.js +4 -5
- package/lib/serialization/SerializerMiddleware.js +6 -6
- package/lib/serialization/SetObjectSerializer.js +2 -1
- package/lib/sharing/ConsumeSharedModule.js +19 -14
- package/lib/sharing/ConsumeSharedPlugin.js +116 -97
- package/lib/sharing/ConsumeSharedRuntimeModule.js +108 -141
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedPlugin.js +2 -2
- package/lib/sharing/resolveMatchedConfigs.js +2 -1
- package/lib/sharing/utils.js +15 -27
- package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
- package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
- package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
- package/lib/stats/StatsFactory.js +127 -56
- package/lib/stats/StatsPrinter.js +75 -44
- package/lib/util/ArrayHelpers.js +8 -4
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +31 -12
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +1 -0
- package/lib/util/MapHelpers.js +1 -3
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/Queue.js +1 -1
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +4 -3
- package/lib/util/StackedCacheMap.js +4 -6
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +0 -5
- package/lib/util/TupleQueue.js +1 -1
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +7 -7
- package/lib/util/WeakTupleMap.js +19 -21
- package/lib/util/binarySearchBounds.js +5 -12
- package/lib/util/chainedImports.js +1 -1
- package/lib/util/cleverMerge.js +21 -19
- package/lib/util/comparators.js +57 -52
- package/lib/util/compileBooleanMatcher.js +3 -6
- package/lib/util/conventions.js +10 -13
- package/lib/util/createHash.js +9 -6
- package/lib/util/deprecation.js +22 -12
- package/lib/util/deterministicGrouping.js +19 -26
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +31 -31
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +7 -7
- package/lib/util/hash/xxhash64.js +2 -2
- package/lib/util/identifier.js +81 -59
- package/lib/util/memoize.js +8 -10
- package/lib/util/mergeScope.js +6 -9
- package/lib/util/nonNumericOnlyHash.js +2 -2
- package/lib/util/numberHash.js +1 -6
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/propertyAccess.js +2 -5
- package/lib/util/propertyName.js +1 -3
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +103 -113
- package/lib/util/semver.js +29 -27
- package/lib/util/serialization.js +16 -1
- package/lib/util/smartGrouping.js +5 -5
- package/lib/util/source.js +1 -1
- package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
- package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
- package/package.json +17 -16
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- 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/types.d.ts +682 -347
@@ -116,15 +116,15 @@ const loaderToIdent = data => {
|
|
116
116
|
return data.loader;
|
117
117
|
}
|
118
118
|
if (typeof data.options === "string") {
|
119
|
-
return data.loader
|
119
|
+
return `${data.loader}?${data.options}`;
|
120
120
|
}
|
121
121
|
if (typeof data.options !== "object") {
|
122
122
|
throw new Error("loader options must be string or object");
|
123
123
|
}
|
124
124
|
if (data.ident) {
|
125
|
-
return data.loader
|
125
|
+
return `${data.loader}??${data.ident}`;
|
126
126
|
}
|
127
|
-
return data.loader
|
127
|
+
return `${data.loader}?${JSON.stringify(data.options)}`;
|
128
128
|
};
|
129
129
|
|
130
130
|
/**
|
@@ -135,7 +135,7 @@ const loaderToIdent = data => {
|
|
135
135
|
const stringifyLoadersAndResource = (loaders, resource) => {
|
136
136
|
let str = "";
|
137
137
|
for (const loader of loaders) {
|
138
|
-
str += loaderToIdent(loader)
|
138
|
+
str += `${loaderToIdent(loader)}!`;
|
139
139
|
}
|
140
140
|
return str + resource;
|
141
141
|
};
|
@@ -145,16 +145,14 @@ const stringifyLoadersAndResource = (loaders, resource) => {
|
|
145
145
|
* @param {(err?: null | Error) => void} callback callback
|
146
146
|
* @returns {(err?: null | Error) => void} callback
|
147
147
|
*/
|
148
|
-
const needCalls = (times, callback) => {
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
}
|
157
|
-
};
|
148
|
+
const needCalls = (times, callback) => err => {
|
149
|
+
if (--times === 0) {
|
150
|
+
return callback(err);
|
151
|
+
}
|
152
|
+
if (err && times > 0) {
|
153
|
+
times = Number.NaN;
|
154
|
+
return callback(err);
|
155
|
+
}
|
158
156
|
};
|
159
157
|
|
160
158
|
/**
|
@@ -173,18 +171,14 @@ const mergeGlobalOptions = (globalOptions, type, localOptions) => {
|
|
173
171
|
current = current ? `${current}/${part}` : part;
|
174
172
|
const options = globalOptions[current];
|
175
173
|
if (typeof options === "object") {
|
176
|
-
|
177
|
-
result
|
178
|
-
} else {
|
179
|
-
result = cachedCleverMerge(result, options);
|
180
|
-
}
|
174
|
+
result =
|
175
|
+
result === undefined ? options : cachedCleverMerge(result, options);
|
181
176
|
}
|
182
177
|
}
|
183
178
|
if (result === undefined) {
|
184
179
|
return localOptions;
|
185
|
-
} else {
|
186
|
-
return cachedCleverMerge(result, localOptions);
|
187
180
|
}
|
181
|
+
return cachedCleverMerge(result, localOptions);
|
188
182
|
};
|
189
183
|
|
190
184
|
// TODO webpack 6 remove
|
@@ -200,9 +194,7 @@ const deprecationChangedHookMessage = (name, hook) => {
|
|
200
194
|
* @param {TODO} tapped tapped
|
201
195
|
* @returns {string} name
|
202
196
|
*/
|
203
|
-
tapped =>
|
204
|
-
return tapped.name;
|
205
|
-
}
|
197
|
+
tapped => tapped.name
|
206
198
|
)
|
207
199
|
.join(", ");
|
208
200
|
|
@@ -348,8 +340,10 @@ class NormalModuleFactory extends ModuleFactory {
|
|
348
340
|
|
349
341
|
if (typeof result === "object")
|
350
342
|
throw new Error(
|
351
|
-
deprecationChangedHookMessage(
|
352
|
-
"
|
343
|
+
`${deprecationChangedHookMessage(
|
344
|
+
"resolve",
|
345
|
+
this.hooks.resolve
|
346
|
+
)} Returning a Module object will result in this module used as result.`
|
353
347
|
);
|
354
348
|
|
355
349
|
this.hooks.afterResolve.callAsync(resolveData, (err, result) => {
|
@@ -427,7 +421,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
427
421
|
const loaderResolver = this.getResolver("loader");
|
428
422
|
|
429
423
|
/** @type {ResourceData | undefined} */
|
430
|
-
let matchResourceData
|
424
|
+
let matchResourceData;
|
431
425
|
/** @type {string} */
|
432
426
|
let unresolvedResource;
|
433
427
|
/** @type {ParsedLoaderRequest[]} */
|
@@ -538,8 +532,8 @@ class NormalModuleFactory extends ModuleFactory {
|
|
538
532
|
item.ident = ident;
|
539
533
|
}
|
540
534
|
}
|
541
|
-
} catch (
|
542
|
-
return callback(/** @type {Error} */ (
|
535
|
+
} catch (identErr) {
|
536
|
+
return callback(/** @type {Error} */ (identErr));
|
543
537
|
}
|
544
538
|
|
545
539
|
if (!resourceData) {
|
@@ -617,10 +611,15 @@ class NormalModuleFactory extends ModuleFactory {
|
|
617
611
|
} else if (
|
618
612
|
typeof r.value === "object" &&
|
619
613
|
r.value !== null &&
|
620
|
-
typeof settings[
|
621
|
-
|
614
|
+
typeof settings[
|
615
|
+
/** @type {keyof ModuleSettings} */ (r.type)
|
616
|
+
] === "object" &&
|
617
|
+
settings[/** @type {keyof ModuleSettings} */ (r.type)] !== null
|
622
618
|
) {
|
623
|
-
settings[r.type] = cachedCleverMerge(
|
619
|
+
settings[r.type] = cachedCleverMerge(
|
620
|
+
settings[/** @type {keyof ModuleSettings} */ (r.type)],
|
621
|
+
r.value
|
622
|
+
);
|
624
623
|
} else {
|
625
624
|
settings[r.type] = r.value;
|
626
625
|
}
|
@@ -652,7 +651,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
652
651
|
}
|
653
652
|
for (const loader of /** @type {LoaderItem[]} */ (preLoaders))
|
654
653
|
allLoaders.push(loader);
|
655
|
-
|
654
|
+
const type = /** @type {string} */ (settings.type);
|
656
655
|
const resolveOptions = settings.resolve;
|
657
656
|
const layer = settings.layer;
|
658
657
|
if (layer !== undefined && !layers) {
|
@@ -688,8 +687,8 @@ class NormalModuleFactory extends ModuleFactory {
|
|
688
687
|
generatorOptions: settings.generator,
|
689
688
|
resolveOptions
|
690
689
|
});
|
691
|
-
} catch (
|
692
|
-
return callback(/** @type {Error} */ (
|
690
|
+
} catch (createDataErr) {
|
691
|
+
return callback(/** @type {Error} */ (createDataErr));
|
693
692
|
}
|
694
693
|
callback();
|
695
694
|
});
|
@@ -772,12 +771,17 @@ class NormalModuleFactory extends ModuleFactory {
|
|
772
771
|
unresolvedResource,
|
773
772
|
normalResolver,
|
774
773
|
resolveContext,
|
775
|
-
(err,
|
774
|
+
(err, _resolvedResource, resolvedResourceResolveData) => {
|
776
775
|
if (err) return continueCallback(err);
|
777
|
-
if (
|
776
|
+
if (_resolvedResource !== false) {
|
777
|
+
const resolvedResource =
|
778
|
+
/** @type {string} */
|
779
|
+
(_resolvedResource);
|
778
780
|
resourceData = {
|
779
781
|
resource: resolvedResource,
|
780
|
-
data:
|
782
|
+
data:
|
783
|
+
/** @type {ResolveRequest} */
|
784
|
+
(resolvedResourceResolveData),
|
781
785
|
...cacheParseResource(resolvedResource)
|
782
786
|
};
|
783
787
|
}
|
@@ -1066,13 +1070,12 @@ Add the extension to the request.`
|
|
1066
1070
|
/(\.[^.]+)(\?|$)/,
|
1067
1071
|
"$2"
|
1068
1072
|
);
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
hint = `Did you mean '${fixedRequest}'? Also note that '${match[1]}' is not in 'resolve.extensions' yet and need to be added for this to work?`;
|
1073
|
-
}
|
1073
|
+
hint = resolver.options.extensions.has(match[1])
|
1074
|
+
? `Did you mean '${fixedRequest}'?`
|
1075
|
+
: `Did you mean '${fixedRequest}'? Also note that '${match[1]}' is not in 'resolve.extensions' yet and need to be added for this to work?`;
|
1074
1076
|
} else {
|
1075
|
-
hint =
|
1077
|
+
hint =
|
1078
|
+
"Did you mean to omit the extension or to remove 'resolve.enforceExtension'?";
|
1076
1079
|
}
|
1077
1080
|
return callback(
|
1078
1081
|
null,
|
@@ -1151,18 +1154,17 @@ If changing the source code is not an option there is also a resolve options cal
|
|
1151
1154
|
if (
|
1152
1155
|
err &&
|
1153
1156
|
/^[^/]*$/.test(item.loader) &&
|
1154
|
-
|
1157
|
+
!item.loader.endsWith("-loader")
|
1155
1158
|
) {
|
1156
1159
|
return resolver.resolve(
|
1157
1160
|
contextInfo,
|
1158
1161
|
context,
|
1159
|
-
item.loader
|
1162
|
+
`${item.loader}-loader`,
|
1160
1163
|
resolveContext,
|
1161
1164
|
err2 => {
|
1162
1165
|
if (!err2) {
|
1163
1166
|
err.message =
|
1164
|
-
err.message +
|
1165
|
-
"\n" +
|
1167
|
+
`${err.message}\n` +
|
1166
1168
|
"BREAKING CHANGE: It's no longer allowed to omit the '-loader' suffix when using loaders.\n" +
|
1167
1169
|
` You need to specify '${item.loader}-loader' instead of '${item.loader}',\n` +
|
1168
1170
|
" see https://webpack.js.org/migrate/3/#automatic-loader-module-name-extension-removed";
|
@@ -1173,7 +1175,9 @@ If changing the source code is not an option there is also a resolve options cal
|
|
1173
1175
|
}
|
1174
1176
|
if (err) return callback(err);
|
1175
1177
|
|
1176
|
-
const parsedResult = this._parseResourceWithoutFragment(
|
1178
|
+
const parsedResult = this._parseResourceWithoutFragment(
|
1179
|
+
/** @type {string} */ (result)
|
1180
|
+
);
|
1177
1181
|
|
1178
1182
|
const type = /\.mjs$/i.test(parsedResult.path)
|
1179
1183
|
? "module"
|
package/lib/ProgressPlugin.js
CHANGED
@@ -41,9 +41,7 @@ const validate = createSchemaValidation(
|
|
41
41
|
* @param {number} c c
|
42
42
|
* @returns {number} median
|
43
43
|
*/
|
44
|
-
const median3 = (a, b, c) =>
|
45
|
-
return a + b + c - Math.max(a, b, c) - Math.min(a, b, c);
|
46
|
-
};
|
44
|
+
const median3 = (a, b, c) => a + b + c - Math.max(a, b, c) - Math.min(a, b, c);
|
47
45
|
|
48
46
|
/**
|
49
47
|
* @param {boolean | null | undefined} profile need profile
|
@@ -78,11 +76,12 @@ const createDefaultHandler = (profile, logger) => {
|
|
78
76
|
if (lastStateItem.value) {
|
79
77
|
let reportState = lastStateItem.value;
|
80
78
|
if (i > 0) {
|
81
|
-
reportState = lastStateInfo[i - 1].value
|
79
|
+
reportState = `${lastStateInfo[i - 1].value} > ${reportState}`;
|
82
80
|
}
|
83
81
|
const stateMsg = `${" | ".repeat(i)}${diff} ms ${reportState}`;
|
84
82
|
const d = diff;
|
85
83
|
// This depends on timing so we ignore it for coverage
|
84
|
+
/* eslint-disable no-lone-blocks */
|
86
85
|
/* istanbul ignore next */
|
87
86
|
{
|
88
87
|
if (d > 10000) {
|
@@ -97,6 +96,7 @@ const createDefaultHandler = (profile, logger) => {
|
|
97
96
|
logger.debug(stateMsg);
|
98
97
|
}
|
99
98
|
}
|
99
|
+
/* eslint-enable no-lone-blocks */
|
100
100
|
}
|
101
101
|
if (stateItem === undefined) {
|
102
102
|
lastStateInfo.length = i;
|
@@ -191,14 +191,14 @@ class ProgressPlugin {
|
|
191
191
|
const states = compiler.compilers.map(
|
192
192
|
() => /** @type {[number, ...string[]]} */ ([0])
|
193
193
|
);
|
194
|
-
compiler.compilers.
|
194
|
+
for (const [idx, item] of compiler.compilers.entries()) {
|
195
195
|
new ProgressPlugin((p, msg, ...args) => {
|
196
196
|
states[idx] = [p, msg, ...args];
|
197
197
|
let sum = 0;
|
198
198
|
for (const [p] of states) sum += p;
|
199
199
|
handler(sum / states.length, `[${idx}] ${msg}`, ...args);
|
200
|
-
}).apply(
|
201
|
-
}
|
200
|
+
}).apply(item);
|
201
|
+
}
|
202
202
|
}
|
203
203
|
|
204
204
|
/**
|
@@ -507,7 +507,7 @@ class ProgressPlugin {
|
|
507
507
|
afterSeal: "after seal"
|
508
508
|
};
|
509
509
|
const numberOfHooks = Object.keys(hooks).length;
|
510
|
-
Object.keys(hooks).
|
510
|
+
for (const [idx, name] of Object.keys(hooks).entries()) {
|
511
511
|
const title = hooks[/** @type {keyof typeof hooks} */ (name)];
|
512
512
|
const percentage = (idx / numberOfHooks) * 0.25 + 0.7;
|
513
513
|
compilation.hooks[/** @type {keyof typeof hooks} */ (name)].intercept({
|
@@ -534,7 +534,7 @@ class ProgressPlugin {
|
|
534
534
|
handler(percentage, "sealing", title, tap.name);
|
535
535
|
}
|
536
536
|
});
|
537
|
-
}
|
537
|
+
}
|
538
538
|
});
|
539
539
|
compiler.hooks.make.intercept({
|
540
540
|
name: "ProgressPlugin",
|
package/lib/ProvidePlugin.js
CHANGED
@@ -58,16 +58,16 @@ class ProvidePlugin {
|
|
58
58
|
* @returns {void}
|
59
59
|
*/
|
60
60
|
const handler = (parser, parserOptions) => {
|
61
|
-
Object.keys(definitions)
|
61
|
+
for (const name of Object.keys(definitions)) {
|
62
62
|
const request =
|
63
63
|
/** @type {string[]} */
|
64
64
|
([]).concat(definitions[name]);
|
65
65
|
const splittedName = name.split(".");
|
66
66
|
if (splittedName.length > 0) {
|
67
|
-
splittedName.slice(1).
|
67
|
+
for (const [i, _] of splittedName.slice(1).entries()) {
|
68
68
|
const name = splittedName.slice(0, i + 1).join(".");
|
69
69
|
parser.hooks.canRename.for(name).tap(PLUGIN_NAME, approve);
|
70
|
-
}
|
70
|
+
}
|
71
71
|
}
|
72
72
|
|
73
73
|
parser.hooks.expression.for(name).tap(PLUGIN_NAME, expr => {
|
@@ -100,7 +100,7 @@ class ProvidePlugin {
|
|
100
100
|
parser.walkExpressions(expr.arguments);
|
101
101
|
return true;
|
102
102
|
});
|
103
|
-
}
|
103
|
+
}
|
104
104
|
};
|
105
105
|
normalModuleFactory.hooks.parser
|
106
106
|
.for(JAVASCRIPT_MODULE_TYPE_AUTO)
|