webpack 5.99.8 → 5.100.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 +0 -3
- package/bin/webpack.js +8 -2
- package/hot/log.js +15 -15
- package/hot/poll.js +1 -0
- package/lib/APIPlugin.js +3 -3
- package/lib/AbstractMethodError.js +1 -0
- package/lib/AutomaticPrefetchPlugin.js +1 -0
- package/lib/BannerPlugin.js +1 -1
- package/lib/CacheFacade.js +2 -1
- package/lib/CaseSensitiveModulesWarning.js +4 -4
- package/lib/Chunk.js +6 -6
- package/lib/ChunkGraph.js +37 -32
- package/lib/ChunkGroup.js +17 -10
- package/lib/ChunkTemplate.js +1 -1
- package/lib/CleanPlugin.js +94 -17
- package/lib/CodeGenerationResults.js +1 -1
- package/lib/CompatibilityPlugin.js +5 -2
- package/lib/Compilation.js +77 -71
- package/lib/Compiler.js +46 -16
- package/lib/ConcatenationScope.js +15 -6
- package/lib/ConstPlugin.js +65 -45
- package/lib/ContextModule.js +16 -12
- package/lib/ContextModuleFactory.js +4 -3
- package/lib/ContextReplacementPlugin.js +4 -2
- package/lib/CssModule.js +2 -3
- package/lib/DefinePlugin.js +111 -3
- package/lib/DelegatedModuleFactoryPlugin.js +18 -18
- package/lib/Dependency.js +16 -12
- package/lib/DependencyTemplate.js +1 -0
- package/lib/DllEntryPlugin.js +3 -1
- package/lib/DllPlugin.js +4 -3
- package/lib/DllReferencePlugin.js +2 -2
- package/lib/DynamicEntryPlugin.js +1 -1
- package/lib/EntryOptionPlugin.js +5 -0
- package/lib/ErrorHelpers.js +4 -4
- package/lib/EvalDevToolModulePlugin.js +3 -3
- package/lib/EvalSourceMapDevToolPlugin.js +7 -7
- package/lib/ExportsInfo.js +48 -39
- package/lib/ExternalModule.js +15 -11
- package/lib/ExternalModuleFactoryPlugin.js +5 -2
- package/lib/FileSystemInfo.js +51 -38
- package/lib/FlagDependencyExportsPlugin.js +14 -7
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +14 -1
- package/lib/HookWebpackError.js +1 -0
- package/lib/HotModuleReplacementPlugin.js +77 -50
- package/lib/IgnorePlugin.js +1 -1
- package/lib/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/JavascriptMetaInfoPlugin.js +0 -1
- package/lib/LibManifestPlugin.js +4 -2
- package/lib/LoaderOptionsPlugin.js +6 -4
- package/lib/MainTemplate.js +2 -2
- package/lib/Module.js +21 -6
- package/lib/ModuleFactory.js +1 -0
- package/lib/ModuleGraph.js +24 -2
- package/lib/ModuleGraphConnection.js +5 -5
- package/lib/ModuleInfoHeaderPlugin.js +2 -1
- package/lib/ModuleParseError.js +1 -0
- package/lib/ModuleSourceTypesConstants.js +12 -12
- package/lib/ModuleTemplate.js +1 -1
- package/lib/ModuleTypeConstants.js +21 -21
- package/lib/MultiCompiler.js +6 -6
- package/lib/NormalModule.js +61 -56
- package/lib/NormalModuleFactory.js +52 -37
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptimizationStages.js +1 -1
- package/lib/Parser.js +1 -0
- package/lib/ProgressPlugin.js +12 -5
- package/lib/ProvidePlugin.js +5 -1
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RuntimeGlobals.js +175 -155
- package/lib/RuntimeModule.js +1 -0
- package/lib/RuntimePlugin.js +34 -8
- package/lib/RuntimeTemplate.js +111 -11
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +15 -25
- package/lib/SourceMapDevToolPlugin.js +19 -17
- package/lib/Template.js +2 -2
- package/lib/TemplatedPathPlugin.js +1 -1
- package/lib/WarnDeprecatedOptionPlugin.js +7 -8
- package/lib/WatchIgnorePlugin.js +4 -3
- package/lib/WebpackIsIncludedPlugin.js +2 -1
- package/lib/WebpackOptionsApply.js +115 -27
- package/lib/asset/AssetGenerator.js +26 -21
- package/lib/asset/AssetModulesPlugin.js +19 -17
- package/lib/asset/AssetSourceGenerator.js +11 -9
- package/lib/asset/RawDataUrlModule.js +4 -2
- package/lib/async-modules/AwaitDependenciesInitFragment.js +1 -1
- package/lib/buildChunkGraph.js +6 -3
- package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
- package/lib/cache/IdleFileCachePlugin.js +7 -4
- package/lib/cache/MemoryCachePlugin.js +1 -0
- package/lib/cache/MemoryWithGcCachePlugin.js +1 -0
- package/lib/cache/PackFileCacheStrategy.js +26 -20
- package/lib/cache/ResolverCachePlugin.js +16 -8
- package/lib/cli.js +15 -10
- package/lib/config/browserslistTargetHandler.js +3 -3
- package/lib/config/defaults.js +25 -17
- package/lib/config/normalization.js +2 -1
- package/lib/config/target.js +6 -5
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackModule.js +2 -1
- package/lib/container/HoistContainerReferencesPlugin.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -2
- package/lib/container/RemoteModule.js +1 -1
- package/lib/css/CssGenerator.js +9 -6
- package/lib/css/CssModulesPlugin.js +44 -31
- package/lib/css/CssParser.js +6 -4
- package/lib/css/walkCssTokens.js +33 -37
- package/lib/debug/ProfilingPlugin.js +6 -6
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +8 -8
- package/lib/dependencies/AMDPlugin.js +12 -8
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -26
- package/lib/dependencies/CachedConstDependency.js +1 -5
- package/lib/dependencies/CommonJsExportRequireDependency.js +6 -4
- package/lib/dependencies/CommonJsExportsParserPlugin.js +22 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -114
- package/lib/dependencies/CommonJsPlugin.js +15 -16
- package/lib/dependencies/ContextDependencyHelpers.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/CssIcssExportDependency.js +1 -1
- package/lib/dependencies/CssLocalIdentifierDependency.js +2 -2
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +9 -9
- package/lib/dependencies/ExportsInfoDependency.js +1 -1
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +122 -101
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +95 -19
- package/lib/dependencies/HarmonyExportInitFragment.js +1 -1
- package/lib/dependencies/HarmonyImportDependency.js +11 -5
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +238 -162
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +20 -9
- package/lib/dependencies/HarmonyModulesPlugin.js +23 -12
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaPlugin.js +2 -2
- package/lib/dependencies/ImportParserPlugin.js +40 -9
- package/lib/dependencies/ImportPlugin.js +3 -1
- package/lib/dependencies/LoaderPlugin.js +1 -0
- package/lib/dependencies/ModuleDependency.js +1 -1
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +3 -1
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
- package/lib/dependencies/RequireIncludePlugin.js +1 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLContextDependency.js +65 -0
- package/lib/dependencies/URLDependency.js +1 -1
- package/lib/dependencies/URLPlugin.js +17 -157
- package/lib/dependencies/WorkerPlugin.js +23 -10
- package/lib/dependencies/processExportInfo.js +2 -1
- package/lib/esm/ModuleChunkFormatPlugin.js +269 -185
- package/lib/esm/ModuleChunkLoadingPlugin.js +39 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +73 -6
- package/lib/hmr/HotModuleReplacement.runtime.js +0 -1
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
- package/lib/hmr/LazyCompilationPlugin.js +4 -2
- package/lib/hmr/lazyCompilationBackend.js +4 -2
- package/lib/ids/ChunkModuleIdRangePlugin.js +6 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +30 -35
- package/lib/ids/DeterministicModuleIdsPlugin.js +4 -3
- package/lib/ids/HashedModuleIdsPlugin.js +5 -4
- package/lib/ids/IdHelpers.js +21 -17
- package/lib/ids/NamedChunkIdsPlugin.js +5 -5
- package/lib/ids/NamedModuleIdsPlugin.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +3 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +1 -1
- package/lib/ids/SyncModuleIdsPlugin.js +1 -1
- package/lib/index.js +13 -3
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +113 -119
- package/lib/javascript/BasicEvaluatedExpression.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +121 -136
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -3
- package/lib/javascript/JavascriptGenerator.js +14 -2
- package/lib/javascript/JavascriptModulesPlugin.js +68 -27
- package/lib/javascript/JavascriptParser.js +136 -81
- package/lib/javascript/JavascriptParserHelpers.js +41 -41
- package/lib/javascript/StartupHelpers.js +17 -17
- package/lib/json/JsonGenerator.js +4 -2
- package/lib/json/JsonModulesPlugin.js +2 -2
- package/lib/json/JsonParser.js +1 -1
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AssignLibraryPlugin.js +21 -6
- package/lib/library/EnableLibraryPlugin.js +23 -3
- package/lib/library/ModuleLibraryPlugin.js +4 -1
- package/lib/library/UmdLibraryPlugin.js +15 -6
- package/lib/logging/createConsoleLogger.js +3 -3
- package/lib/logging/runtime.js +9 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +4 -22
- package/lib/node/RequireChunkLoadingRuntimeModule.js +4 -22
- package/lib/node/nodeConsole.js +4 -2
- package/lib/optimize/AggressiveMergingPlugin.js +45 -46
- package/lib/optimize/AggressiveSplittingPlugin.js +13 -12
- package/lib/optimize/ConcatenatedModule.js +227 -57
- package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -1
- package/lib/optimize/InnerGraph.js +115 -112
- package/lib/optimize/InnerGraphPlugin.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +4 -2
- package/lib/optimize/MangleExportsPlugin.js +4 -3
- package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
- package/lib/optimize/MinChunkSizePlugin.js +6 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +31 -22
- package/lib/optimize/RealContentHashPlugin.js +26 -20
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +1 -0
- package/lib/optimize/SideEffectsFlagPlugin.js +6 -3
- package/lib/optimize/SplitChunksPlugin.js +16 -13
- package/lib/rules/BasicEffectRulePlugin.js +4 -2
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -1
- package/lib/rules/RuleSetCompiler.js +7 -4
- package/lib/rules/UseEffectRulePlugin.js +3 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +64 -9
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +214 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +8 -7
- package/lib/schemes/DataUriPlugin.js +3 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +27 -19
- package/lib/schemes/VirtualUrlPlugin.js +222 -0
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +5 -4
- package/lib/serialization/FileMiddleware.js +7 -4
- package/lib/serialization/ObjectMiddleware.js +14 -8
- package/lib/serialization/Serializer.js +5 -3
- package/lib/serialization/SerializerMiddleware.js +2 -0
- package/lib/sharing/ConsumeSharedModule.js +1 -1
- package/lib/sharing/ConsumeSharedPlugin.js +3 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +2 -2
- package/lib/sharing/ProvideSharedModule.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +6 -3
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +3 -5
- package/lib/sharing/utils.js +34 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +49 -46
- package/lib/stats/DefaultStatsPresetPlugin.js +4 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +28 -22
- package/lib/stats/StatsFactory.js +4 -2
- package/lib/stats/StatsPrinter.js +3 -2
- package/lib/url/URLParserPlugin.js +266 -0
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +1 -1
- package/lib/util/Hash.js +2 -0
- package/lib/util/IterableHelpers.js +1 -1
- package/lib/util/LazyBucketSortedSet.js +2 -1
- package/lib/util/LazySet.js +11 -6
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/SetHelpers.js +3 -3
- package/lib/util/SortableSet.js +2 -2
- package/lib/util/StackedCacheMap.js +3 -1
- package/lib/util/StackedMap.js +2 -2
- package/lib/util/StringXor.js +1 -0
- package/lib/util/TupleSet.js +1 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -1
- package/lib/util/cleverMerge.js +12 -8
- package/lib/util/comparators.js +154 -127
- package/lib/util/compileBooleanMatcher.js +8 -3
- package/lib/util/concatenate.js +8 -7
- package/lib/util/conventions.js +72 -73
- package/lib/util/create-schema-validation.js +2 -1
- package/lib/util/createHash.js +10 -4
- package/lib/util/deprecation.js +69 -66
- package/lib/util/deterministicGrouping.js +4 -2
- package/lib/util/extractUrlAndGlobal.js +1 -1
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +30 -23
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +4 -2
- package/lib/util/identifier.js +13 -12
- package/lib/util/internalSerializables.js +2 -0
- package/lib/util/magicComment.js +5 -5
- package/lib/util/processAsyncTree.js +1 -1
- package/lib/util/propertyAccess.js +1 -1
- package/lib/util/propertyName.js +1 -1
- package/lib/util/registerExternalSerializer.js +1 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +29 -21
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +3 -0
- package/lib/util/source.js +3 -2
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +6 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +4 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +46 -49
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +2 -3
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +3 -2
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +3 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +4 -22
- package/lib/webpack.js +4 -5
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +1 -0
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -24
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
- package/package.json +121 -114
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
- package/types.d.ts +1261 -366
|
@@ -9,10 +9,10 @@ const { getContext } = require("loader-runner");
|
|
|
9
9
|
const asyncLib = require("neo-async");
|
|
10
10
|
const {
|
|
11
11
|
AsyncSeriesBailHook,
|
|
12
|
-
|
|
12
|
+
HookMap,
|
|
13
13
|
SyncBailHook,
|
|
14
14
|
SyncHook,
|
|
15
|
-
|
|
15
|
+
SyncWaterfallHook
|
|
16
16
|
} = require("tapable");
|
|
17
17
|
const ChunkGraph = require("./ChunkGraph");
|
|
18
18
|
const Module = require("./Module");
|
|
@@ -85,7 +85,15 @@ const {
|
|
|
85
85
|
* @property {string=} context
|
|
86
86
|
*/
|
|
87
87
|
|
|
88
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* @typedef {object} ResourceSchemeData
|
|
90
|
+
* @property {string=} mimetype mime type of the resource
|
|
91
|
+
* @property {string=} parameters additional parameters for the resource
|
|
92
|
+
* @property {"base64" | false=} encoding encoding of the resource
|
|
93
|
+
* @property {string=} encodedContent encoded content of the resource
|
|
94
|
+
*/
|
|
95
|
+
|
|
96
|
+
/** @typedef {ResourceData & { data: ResourceSchemeData & Partial<ResolveRequest> }} ResourceDataWithData */
|
|
89
97
|
|
|
90
98
|
/**
|
|
91
99
|
* @typedef {object} ParsedLoaderRequest
|
|
@@ -296,7 +304,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
296
304
|
generator: new HookMap(
|
|
297
305
|
() => new SyncHook(["generator", "generatorOptions"])
|
|
298
306
|
),
|
|
299
|
-
/** @type {HookMap<SyncBailHook<[
|
|
307
|
+
/** @type {HookMap<SyncBailHook<[CreateData, ResolveData], Module | void>>} */
|
|
300
308
|
createModuleClass: new HookMap(
|
|
301
309
|
() => new SyncBailHook(["createData", "resolveData"])
|
|
302
310
|
)
|
|
@@ -321,6 +329,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
321
329
|
/** @type {Set<Module>} */
|
|
322
330
|
this._restoredUnsafeCacheEntries = new Set();
|
|
323
331
|
|
|
332
|
+
/** @type {(resource: string) => import("./util/identifier").ParsedResource} */
|
|
324
333
|
const cacheParseResource = parseResource.bindCache(
|
|
325
334
|
associatedObjectForCache
|
|
326
335
|
);
|
|
@@ -343,24 +352,26 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
343
352
|
// direct module
|
|
344
353
|
if (result instanceof Module) return callback(null, result);
|
|
345
354
|
|
|
346
|
-
if (typeof result === "object")
|
|
355
|
+
if (typeof result === "object") {
|
|
347
356
|
throw new Error(
|
|
348
357
|
`${deprecationChangedHookMessage(
|
|
349
358
|
"resolve",
|
|
350
359
|
this.hooks.resolve
|
|
351
360
|
)} Returning a Module object will result in this module used as result.`
|
|
352
361
|
);
|
|
362
|
+
}
|
|
353
363
|
|
|
354
364
|
this.hooks.afterResolve.callAsync(resolveData, (err, result) => {
|
|
355
365
|
if (err) return callback(err);
|
|
356
366
|
|
|
357
|
-
if (typeof result === "object")
|
|
367
|
+
if (typeof result === "object") {
|
|
358
368
|
throw new Error(
|
|
359
369
|
deprecationChangedHookMessage(
|
|
360
370
|
"afterResolve",
|
|
361
371
|
this.hooks.afterResolve
|
|
362
372
|
)
|
|
363
373
|
);
|
|
374
|
+
}
|
|
364
375
|
|
|
365
376
|
// Ignored
|
|
366
377
|
if (result === false) return callback();
|
|
@@ -447,21 +458,22 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
447
458
|
const matchResourceMatch = MATCH_RESOURCE_REGEX.exec(request);
|
|
448
459
|
if (matchResourceMatch) {
|
|
449
460
|
let matchResource = matchResourceMatch[1];
|
|
461
|
+
// Check if matchResource starts with ./ or ../
|
|
450
462
|
if (matchResource.charCodeAt(0) === 46) {
|
|
451
|
-
// 46
|
|
463
|
+
// 46 is "."
|
|
452
464
|
const secondChar = matchResource.charCodeAt(1);
|
|
453
465
|
if (
|
|
454
|
-
secondChar === 47 ||
|
|
455
|
-
(secondChar === 46 && matchResource.charCodeAt(2) === 47)
|
|
466
|
+
secondChar === 47 || // 47 is "/"
|
|
467
|
+
(secondChar === 46 && matchResource.charCodeAt(2) === 47) // "../"
|
|
456
468
|
) {
|
|
457
|
-
//
|
|
469
|
+
// Resolve relative path against context
|
|
458
470
|
matchResource = join(this.fs, context, matchResource);
|
|
459
471
|
}
|
|
460
472
|
}
|
|
461
473
|
|
|
462
474
|
matchResourceData = {
|
|
463
|
-
|
|
464
|
-
|
|
475
|
+
...cacheParseResource(matchResource),
|
|
476
|
+
resource: matchResource
|
|
465
477
|
};
|
|
466
478
|
requestWithoutMatchResource = request.slice(
|
|
467
479
|
matchResourceMatch[0].length
|
|
@@ -546,11 +558,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
546
558
|
|
|
547
559
|
if (!resourceData) {
|
|
548
560
|
// ignored
|
|
549
|
-
return callback(
|
|
550
|
-
null,
|
|
551
|
-
/** @type {TODO} */
|
|
552
|
-
(dependencies[0].createIgnoredModule(context))
|
|
553
|
-
);
|
|
561
|
+
return callback(null, dependencies[0].createIgnoredModule(context));
|
|
554
562
|
}
|
|
555
563
|
|
|
556
564
|
const userRequest =
|
|
@@ -629,12 +637,10 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
629
637
|
settings[/** @type {keyof ModuleSettings} */ (r.type)] !== null
|
|
630
638
|
) {
|
|
631
639
|
const type = /** @type {keyof ModuleSettings} */ (r.type);
|
|
632
|
-
|
|
633
|
-
(settings)[type] = cachedCleverMerge(settings[type], r.value);
|
|
640
|
+
settings[type] = cachedCleverMerge(settings[type], r.value);
|
|
634
641
|
} else {
|
|
635
642
|
const type = /** @type {keyof ModuleSettings} */ (r.type);
|
|
636
|
-
|
|
637
|
-
(settings)[type] = r.value;
|
|
643
|
+
settings[type] = r.value;
|
|
638
644
|
}
|
|
639
645
|
}
|
|
640
646
|
}
|
|
@@ -652,18 +658,27 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
652
658
|
}
|
|
653
659
|
const allLoaders = /** @type {LoaderItem[]} */ (postLoaders);
|
|
654
660
|
if (matchResourceData === undefined) {
|
|
655
|
-
for (const loader of /** @type {LoaderItem[]} */ (loaders))
|
|
661
|
+
for (const loader of /** @type {LoaderItem[]} */ (loaders)) {
|
|
656
662
|
allLoaders.push(loader);
|
|
657
|
-
|
|
663
|
+
}
|
|
664
|
+
for (const loader of /** @type {LoaderItem[]} */ (
|
|
665
|
+
normalLoaders
|
|
666
|
+
)) {
|
|
658
667
|
allLoaders.push(loader);
|
|
668
|
+
}
|
|
659
669
|
} else {
|
|
660
|
-
for (const loader of /** @type {LoaderItem[]} */ (
|
|
670
|
+
for (const loader of /** @type {LoaderItem[]} */ (
|
|
671
|
+
normalLoaders
|
|
672
|
+
)) {
|
|
661
673
|
allLoaders.push(loader);
|
|
662
|
-
|
|
674
|
+
}
|
|
675
|
+
for (const loader of /** @type {LoaderItem[]} */ (loaders)) {
|
|
663
676
|
allLoaders.push(loader);
|
|
677
|
+
}
|
|
664
678
|
}
|
|
665
|
-
for (const loader of /** @type {LoaderItem[]} */ (preLoaders))
|
|
679
|
+
for (const loader of /** @type {LoaderItem[]} */ (preLoaders)) {
|
|
666
680
|
allLoaders.push(loader);
|
|
681
|
+
}
|
|
667
682
|
const type = /** @type {string} */ (settings.type);
|
|
668
683
|
const resolveOptions = settings.resolve;
|
|
669
684
|
const layer = settings.layer;
|
|
@@ -759,9 +774,9 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
759
774
|
const defaultResolve = context => {
|
|
760
775
|
if (/^($|\?)/.test(unresolvedResource)) {
|
|
761
776
|
resourceData = {
|
|
777
|
+
...cacheParseResource(unresolvedResource),
|
|
762
778
|
resource: unresolvedResource,
|
|
763
|
-
data: {}
|
|
764
|
-
.../** @type {TODO} */ (cacheParseResource(unresolvedResource))
|
|
779
|
+
data: {}
|
|
765
780
|
};
|
|
766
781
|
continueCallback();
|
|
767
782
|
}
|
|
@@ -791,12 +806,11 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
791
806
|
/** @type {string} */
|
|
792
807
|
(_resolvedResource);
|
|
793
808
|
resourceData = {
|
|
809
|
+
...cacheParseResource(resolvedResource),
|
|
794
810
|
resource: resolvedResource,
|
|
795
811
|
data:
|
|
796
812
|
/** @type {ResolveRequest} */
|
|
797
|
-
(resolvedResourceResolveData)
|
|
798
|
-
.../** @type {TODO} */
|
|
799
|
-
(cacheParseResource(resolvedResource))
|
|
813
|
+
(resolvedResourceResolveData)
|
|
800
814
|
};
|
|
801
815
|
}
|
|
802
816
|
continueCallback();
|
|
@@ -843,7 +857,9 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
843
857
|
}
|
|
844
858
|
|
|
845
859
|
// resource without scheme and without path
|
|
846
|
-
else
|
|
860
|
+
else {
|
|
861
|
+
defaultResolve(context);
|
|
862
|
+
}
|
|
847
863
|
}
|
|
848
864
|
);
|
|
849
865
|
}
|
|
@@ -915,13 +931,14 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
915
931
|
return callback(null, factoryResult);
|
|
916
932
|
}
|
|
917
933
|
|
|
918
|
-
if (typeof result === "object")
|
|
934
|
+
if (typeof result === "object") {
|
|
919
935
|
throw new Error(
|
|
920
936
|
deprecationChangedHookMessage(
|
|
921
937
|
"beforeResolve",
|
|
922
938
|
this.hooks.beforeResolve
|
|
923
939
|
)
|
|
924
940
|
);
|
|
941
|
+
}
|
|
925
942
|
|
|
926
943
|
this.hooks.factorize.callAsync(resolveData, (err, module) => {
|
|
927
944
|
if (err) {
|
|
@@ -994,9 +1011,7 @@ ${hints.join("\n\n")}`;
|
|
|
994
1011
|
|
|
995
1012
|
// Check if the extension is missing a leading dot (e.g. "js" instead of ".js")
|
|
996
1013
|
let appendResolveExtensionsHint = false;
|
|
997
|
-
const specifiedExtensions =
|
|
998
|
-
resolver.options.extensions
|
|
999
|
-
);
|
|
1014
|
+
const specifiedExtensions = [...resolver.options.extensions];
|
|
1000
1015
|
const expectedExtensions = specifiedExtensions.map(extension => {
|
|
1001
1016
|
if (LEADING_DOT_EXTENSION_REGEX.test(extension)) {
|
|
1002
1017
|
appendResolveExtensionsHint = true;
|
|
@@ -1228,7 +1243,7 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1228
1243
|
}
|
|
1229
1244
|
);
|
|
1230
1245
|
},
|
|
1231
|
-
/** @type {Callback<
|
|
1246
|
+
/** @type {Callback<(LoaderItem | undefined)[]>} */ (callback)
|
|
1232
1247
|
);
|
|
1233
1248
|
}
|
|
1234
1249
|
|
package/lib/NullFactory.js
CHANGED
package/lib/Parser.js
CHANGED
package/lib/ProgressPlugin.js
CHANGED
|
@@ -12,6 +12,10 @@ const createSchemaValidation = require("./util/create-schema-validation");
|
|
|
12
12
|
const { contextify } = require("./util/identifier");
|
|
13
13
|
|
|
14
14
|
/** @typedef {import("tapable").Tap} Tap */
|
|
15
|
+
/**
|
|
16
|
+
* @template T, R, AdditionalOptions
|
|
17
|
+
* @typedef {import("tapable").Hook<T, R, AdditionalOptions>} Hook
|
|
18
|
+
*/
|
|
15
19
|
/** @typedef {import("../declarations/plugins/ProgressPlugin").HandlerFunction} HandlerFunction */
|
|
16
20
|
/** @typedef {import("../declarations/plugins/ProgressPlugin").ProgressPluginArgument} ProgressPluginArgument */
|
|
17
21
|
/** @typedef {import("../declarations/plugins/ProgressPlugin").ProgressPluginOptions} ProgressPluginOptions */
|
|
@@ -34,7 +38,7 @@ const { contextify } = require("./util/identifier");
|
|
|
34
38
|
*/
|
|
35
39
|
|
|
36
40
|
const validate = createSchemaValidation(
|
|
37
|
-
require("../schemas/plugins/ProgressPlugin.check
|
|
41
|
+
require("../schemas/plugins/ProgressPlugin.check"),
|
|
38
42
|
() => require("../schemas/plugins/ProgressPlugin.json"),
|
|
39
43
|
{
|
|
40
44
|
name: "Progress Plugin",
|
|
@@ -321,14 +325,16 @@ class ProgressPlugin {
|
|
|
321
325
|
skippedDependenciesCount++;
|
|
322
326
|
}
|
|
323
327
|
dependenciesCount++;
|
|
324
|
-
if (dependenciesCount < 50 || dependenciesCount % 100 === 0)
|
|
328
|
+
if (dependenciesCount < 50 || dependenciesCount % 100 === 0) {
|
|
325
329
|
updateThrottled();
|
|
330
|
+
}
|
|
326
331
|
};
|
|
327
332
|
|
|
328
333
|
const factorizeDone = () => {
|
|
329
334
|
doneDependencies++;
|
|
330
|
-
if (doneDependencies < 50 || doneDependencies % 100 === 0)
|
|
335
|
+
if (doneDependencies < 50 || doneDependencies % 100 === 0) {
|
|
331
336
|
updateThrottled();
|
|
337
|
+
}
|
|
332
338
|
};
|
|
333
339
|
|
|
334
340
|
/**
|
|
@@ -413,7 +419,7 @@ class ProgressPlugin {
|
|
|
413
419
|
}
|
|
414
420
|
return data;
|
|
415
421
|
},
|
|
416
|
-
|
|
422
|
+
_err => {
|
|
417
423
|
// Ignore error
|
|
418
424
|
}
|
|
419
425
|
);
|
|
@@ -582,7 +588,8 @@ class ProgressPlugin {
|
|
|
582
588
|
}
|
|
583
589
|
});
|
|
584
590
|
/**
|
|
585
|
-
* @
|
|
591
|
+
* @template {Hook<EXPECTED_ANY, EXPECTED_ANY, EXPECTED_ANY>} T
|
|
592
|
+
* @param {T} hook hook
|
|
586
593
|
* @param {number} progress progress from 0 to 1
|
|
587
594
|
* @param {string} category category
|
|
588
595
|
* @param {string} name name
|
package/lib/ProvidePlugin.js
CHANGED
|
@@ -61,7 +61,11 @@ class ProvidePlugin {
|
|
|
61
61
|
for (const name of Object.keys(definitions)) {
|
|
62
62
|
const request =
|
|
63
63
|
/** @type {string[]} */
|
|
64
|
-
([
|
|
64
|
+
([
|
|
65
|
+
...(Array.isArray(definitions[name])
|
|
66
|
+
? definitions[name]
|
|
67
|
+
: [definitions[name]])
|
|
68
|
+
]);
|
|
65
69
|
const splittedName = name.split(".");
|
|
66
70
|
if (splittedName.length > 0) {
|
|
67
71
|
for (const [i, _] of splittedName.slice(1).entries()) {
|
package/lib/RecordIdsPlugin.js
CHANGED
|
@@ -22,7 +22,6 @@ const identifierUtils = require("./util/identifier");
|
|
|
22
22
|
/**
|
|
23
23
|
* @typedef {object} RecordsModules
|
|
24
24
|
* @property {Record<string, number>=} byIdentifier
|
|
25
|
-
* @property {Record<string, number>=} bySource
|
|
26
25
|
* @property {number[]=} usedIds
|
|
27
26
|
*/
|
|
28
27
|
|
|
@@ -85,7 +84,7 @@ class RecordIdsPlugin {
|
|
|
85
84
|
records.modules.byIdentifier[identifier] = moduleId;
|
|
86
85
|
usedIds.add(moduleId);
|
|
87
86
|
}
|
|
88
|
-
records.modules.usedIds =
|
|
87
|
+
records.modules.usedIds = [...usedIds].sort(compareNumbers);
|
|
89
88
|
});
|
|
90
89
|
compilation.hooks.reviveModules.tap(PLUGIN_NAME, (modules, records) => {
|
|
91
90
|
if (!records.modules) return;
|
|
@@ -169,7 +168,7 @@ class RecordIdsPlugin {
|
|
|
169
168
|
}
|
|
170
169
|
usedIds.add(chunk.id);
|
|
171
170
|
}
|
|
172
|
-
records.chunks.usedIds =
|
|
171
|
+
records.chunks.usedIds = [...usedIds].sort(compareNumbers);
|
|
173
172
|
});
|
|
174
173
|
compilation.hooks.reviveChunks.tap(PLUGIN_NAME, (chunks, records) => {
|
|
175
174
|
if (!records.chunks) return;
|
|
@@ -209,4 +208,5 @@ class RecordIdsPlugin {
|
|
|
209
208
|
});
|
|
210
209
|
}
|
|
211
210
|
}
|
|
211
|
+
|
|
212
212
|
module.exports = RecordIdsPlugin;
|