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
package/lib/Compiler.js
CHANGED
@@ -14,7 +14,7 @@ const {
|
|
14
14
|
AsyncSeriesHook
|
15
15
|
} = require("tapable");
|
16
16
|
const { SizeOnlySource } = require("webpack-sources");
|
17
|
-
const webpack = require("
|
17
|
+
const webpack = require(".");
|
18
18
|
const Cache = require("./Cache");
|
19
19
|
const CacheFacade = require("./CacheFacade");
|
20
20
|
const ChunkGraph = require("./ChunkGraph");
|
@@ -47,13 +47,18 @@ const { isSourceEqual } = require("./util/source");
|
|
47
47
|
/** @typedef {import("./Module").BuildInfo} BuildInfo */
|
48
48
|
/** @typedef {import("./config/target").PlatformTargetProperties} PlatformTargetProperties */
|
49
49
|
/** @typedef {import("./logging/createConsoleLogger").LoggingFunction} LoggingFunction */
|
50
|
-
/** @typedef {import("./util/WeakTupleMap")} WeakTupleMap */
|
51
50
|
/** @typedef {import("./util/fs").IStats} IStats */
|
52
51
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
53
52
|
/** @typedef {import("./util/fs").IntermediateFileSystem} IntermediateFileSystem */
|
54
53
|
/** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */
|
55
54
|
/** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */
|
56
55
|
|
56
|
+
/**
|
57
|
+
* @template {any[]} T
|
58
|
+
* @template V
|
59
|
+
* @typedef {import("./util/WeakTupleMap")<T, V>} WeakTupleMap
|
60
|
+
*/
|
61
|
+
|
57
62
|
/**
|
58
63
|
* @typedef {object} CompilationParams
|
59
64
|
* @property {NormalModuleFactory} normalModuleFactory
|
@@ -127,9 +132,8 @@ const includesHash = (filename, hashes) => {
|
|
127
132
|
if (!hashes) return false;
|
128
133
|
if (Array.isArray(hashes)) {
|
129
134
|
return hashes.some(hash => filename.includes(hash));
|
130
|
-
} else {
|
131
|
-
return filename.includes(hashes);
|
132
135
|
}
|
136
|
+
return filename.includes(hashes);
|
133
137
|
};
|
134
138
|
|
135
139
|
class Compiler {
|
@@ -197,7 +201,7 @@ class Compiler {
|
|
197
201
|
/** @type {AsyncSeriesHook<[]>} */
|
198
202
|
shutdown: new AsyncSeriesHook([]),
|
199
203
|
|
200
|
-
/** @type {SyncBailHook<[string, string, any[]], true>} */
|
204
|
+
/** @type {SyncBailHook<[string, string, any[] | undefined], true>} */
|
201
205
|
infrastructureLog: new SyncBailHook(["origin", "type", "args"]),
|
202
206
|
|
203
207
|
// TODO the following hooks are weirdly located here
|
@@ -284,7 +288,7 @@ class Compiler {
|
|
284
288
|
|
285
289
|
this.cache = new Cache();
|
286
290
|
|
287
|
-
/** @type {Map<Module, { buildInfo: BuildInfo, references: References | undefined, memCache: WeakTupleMap }> | undefined} */
|
291
|
+
/** @type {Map<Module, { buildInfo: BuildInfo, references: References | undefined, memCache: WeakTupleMap<any, any> }> | undefined} */
|
288
292
|
this.moduleMemCaches = undefined;
|
289
293
|
|
290
294
|
this.compilerPath = "";
|
@@ -354,10 +358,11 @@ class Compiler {
|
|
354
358
|
);
|
355
359
|
}
|
356
360
|
}
|
357
|
-
if (
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
+
if (
|
362
|
+
this.hooks.infrastructureLog.call(name, type, args) === undefined &&
|
363
|
+
this.infrastructureLogger !== undefined
|
364
|
+
) {
|
365
|
+
this.infrastructureLogger(name, type, args);
|
361
366
|
}
|
362
367
|
},
|
363
368
|
childName => {
|
@@ -382,36 +387,33 @@ class Compiler {
|
|
382
387
|
}
|
383
388
|
return `${name}/${childName}`;
|
384
389
|
});
|
385
|
-
} else {
|
386
|
-
return this.getInfrastructureLogger(() => {
|
387
|
-
if (typeof name === "function") {
|
388
|
-
name = name();
|
389
|
-
if (!name) {
|
390
|
-
throw new TypeError(
|
391
|
-
"Compiler.getInfrastructureLogger(name) called with a function not returning a name"
|
392
|
-
);
|
393
|
-
}
|
394
|
-
}
|
395
|
-
return `${name}/${childName}`;
|
396
|
-
});
|
397
390
|
}
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
if (
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
"Logger.getChildLogger(name) called with a function not returning a name"
|
406
|
-
);
|
407
|
-
}
|
391
|
+
return this.getInfrastructureLogger(() => {
|
392
|
+
if (typeof name === "function") {
|
393
|
+
name = name();
|
394
|
+
if (!name) {
|
395
|
+
throw new TypeError(
|
396
|
+
"Compiler.getInfrastructureLogger(name) called with a function not returning a name"
|
397
|
+
);
|
408
398
|
}
|
409
|
-
|
410
|
-
}
|
411
|
-
}
|
412
|
-
|
413
|
-
|
399
|
+
}
|
400
|
+
return `${name}/${childName}`;
|
401
|
+
});
|
402
|
+
}
|
403
|
+
if (typeof childName === "function") {
|
404
|
+
return this.getInfrastructureLogger(() => {
|
405
|
+
if (typeof childName === "function") {
|
406
|
+
childName = childName();
|
407
|
+
if (!childName) {
|
408
|
+
throw new TypeError(
|
409
|
+
"Logger.getChildLogger(name) called with a function not returning a name"
|
410
|
+
);
|
411
|
+
}
|
412
|
+
}
|
413
|
+
return `${name}/${childName}`;
|
414
|
+
});
|
414
415
|
}
|
416
|
+
return this.getInfrastructureLogger(`${name}/${childName}`);
|
415
417
|
}
|
416
418
|
);
|
417
419
|
}
|
@@ -623,11 +625,11 @@ class Compiler {
|
|
623
625
|
const finalCallback = (err, entries, compilation) => {
|
624
626
|
try {
|
625
627
|
callback(err, entries, compilation);
|
626
|
-
} catch (
|
628
|
+
} catch (runAsChildErr) {
|
627
629
|
const err = new WebpackError(
|
628
|
-
`compiler.runAsChild callback error: ${
|
630
|
+
`compiler.runAsChild callback error: ${runAsChildErr}`
|
629
631
|
);
|
630
|
-
err.details = /** @type {Error} */ (
|
632
|
+
err.details = /** @type {Error} */ (runAsChildErr).stack;
|
631
633
|
/** @type {Compilation} */
|
632
634
|
(this.parentCompilation).errors.push(err);
|
633
635
|
}
|
@@ -765,18 +767,17 @@ ${other}`);
|
|
765
767
|
callback(err);
|
766
768
|
}
|
767
769
|
return true;
|
768
|
-
} else {
|
769
|
-
caseInsensitiveMap.set(
|
770
|
-
caseInsensitiveTargetPath,
|
771
|
-
(similarEntry = /** @type {SimilarEntry} */ ({
|
772
|
-
path: targetPath,
|
773
|
-
source,
|
774
|
-
size: undefined,
|
775
|
-
waiting: undefined
|
776
|
-
}))
|
777
|
-
);
|
778
|
-
return false;
|
779
770
|
}
|
771
|
+
caseInsensitiveMap.set(
|
772
|
+
caseInsensitiveTargetPath,
|
773
|
+
(similarEntry = /** @type {SimilarEntry} */ ({
|
774
|
+
path: targetPath,
|
775
|
+
source,
|
776
|
+
size: undefined,
|
777
|
+
waiting: undefined
|
778
|
+
}))
|
779
|
+
);
|
780
|
+
return false;
|
780
781
|
};
|
781
782
|
|
782
783
|
/**
|
@@ -786,14 +787,12 @@ ${other}`);
|
|
786
787
|
const getContent = () => {
|
787
788
|
if (typeof source.buffer === "function") {
|
788
789
|
return source.buffer();
|
789
|
-
} else {
|
790
|
-
const bufferOrString = source.source();
|
791
|
-
if (Buffer.isBuffer(bufferOrString)) {
|
792
|
-
return bufferOrString;
|
793
|
-
} else {
|
794
|
-
return Buffer.from(bufferOrString, "utf8");
|
795
|
-
}
|
796
790
|
}
|
791
|
+
const bufferOrString = source.source();
|
792
|
+
if (Buffer.isBuffer(bufferOrString)) {
|
793
|
+
return bufferOrString;
|
794
|
+
}
|
795
|
+
return Buffer.from(bufferOrString, "utf8");
|
797
796
|
};
|
798
797
|
|
799
798
|
const alreadyWritten = () => {
|
@@ -917,9 +916,8 @@ ${other}`);
|
|
917
916
|
!content.equals(/** @type {Buffer} */ (existingContent))
|
918
917
|
) {
|
919
918
|
return doWrite(content);
|
920
|
-
} else {
|
921
|
-
return alreadyWritten();
|
922
919
|
}
|
920
|
+
return alreadyWritten();
|
923
921
|
});
|
924
922
|
}
|
925
923
|
|
@@ -956,10 +954,9 @@ ${other}`);
|
|
956
954
|
});
|
957
955
|
|
958
956
|
return callback();
|
959
|
-
} else {
|
960
|
-
// Settings immutable will make it accept file content without comparing when file exist
|
961
|
-
immutable = true;
|
962
957
|
}
|
958
|
+
// Settings immutable will make it accept file content without comparing when file exist
|
959
|
+
immutable = true;
|
963
960
|
} else if (!immutable) {
|
964
961
|
if (checkSimilarFile()) return;
|
965
962
|
// We wrote to this file before which has very likely a different content
|
@@ -986,7 +983,7 @@ ${other}`);
|
|
986
983
|
}
|
987
984
|
};
|
988
985
|
|
989
|
-
if (targetFile
|
986
|
+
if (/\/|\\/.test(targetFile)) {
|
990
987
|
const fs = /** @type {OutputFileSystem} */ (this.outputFileSystem);
|
991
988
|
const dir = dirname(fs, join(fs, outputPath, targetFile));
|
992
989
|
mkdirp(fs, dir, writeOut);
|
@@ -1041,12 +1038,10 @@ ${other}`);
|
|
1041
1038
|
} else {
|
1042
1039
|
this.hooks.emitRecords.callAsync(callback);
|
1043
1040
|
}
|
1041
|
+
} else if (this.recordsOutputPath) {
|
1042
|
+
this._emitRecords(callback);
|
1044
1043
|
} else {
|
1045
|
-
|
1046
|
-
this._emitRecords(callback);
|
1047
|
-
} else {
|
1048
|
-
callback();
|
1049
|
-
}
|
1044
|
+
callback();
|
1050
1045
|
}
|
1051
1046
|
}
|
1052
1047
|
|
@@ -1115,13 +1110,11 @@ ${other}`);
|
|
1115
1110
|
this.records = {};
|
1116
1111
|
this.hooks.readRecords.callAsync(callback);
|
1117
1112
|
}
|
1113
|
+
} else if (this.recordsInputPath) {
|
1114
|
+
this._readRecords(callback);
|
1118
1115
|
} else {
|
1119
|
-
|
1120
|
-
|
1121
|
-
} else {
|
1122
|
-
this.records = {};
|
1123
|
-
callback();
|
1124
|
-
}
|
1116
|
+
this.records = {};
|
1117
|
+
callback();
|
1125
1118
|
}
|
1126
1119
|
}
|
1127
1120
|
|
@@ -1150,10 +1143,10 @@ ${other}`);
|
|
1150
1143
|
this.records = parseJson(
|
1151
1144
|
/** @type {Buffer} */ (content).toString("utf-8")
|
1152
1145
|
);
|
1153
|
-
} catch (
|
1146
|
+
} catch (parseErr) {
|
1154
1147
|
return callback(
|
1155
1148
|
new Error(
|
1156
|
-
`Cannot parse records: ${/** @type {Error} */ (
|
1149
|
+
`Cannot parse records: ${/** @type {Error} */ (parseErr).message}`
|
1157
1150
|
)
|
1158
1151
|
);
|
1159
1152
|
}
|
@@ -1233,11 +1226,17 @@ ${other}`);
|
|
1233
1226
|
"invalid",
|
1234
1227
|
"done",
|
1235
1228
|
"thisCompilation"
|
1236
|
-
].includes(name)
|
1229
|
+
].includes(name) &&
|
1230
|
+
childCompiler.hooks[/** @type {keyof Compiler["hooks"]} */ (name)]
|
1237
1231
|
) {
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1232
|
+
childCompiler.hooks[
|
1233
|
+
/** @type {keyof Compiler["hooks"]} */
|
1234
|
+
(name)
|
1235
|
+
].taps =
|
1236
|
+
this.hooks[
|
1237
|
+
/** @type {keyof Compiler["hooks"]} */
|
1238
|
+
(name)
|
1239
|
+
].taps.slice();
|
1241
1240
|
}
|
1242
1241
|
}
|
1243
1242
|
|
@@ -1251,7 +1250,7 @@ ${other}`);
|
|
1251
1250
|
}
|
1252
1251
|
|
1253
1252
|
isChild() {
|
1254
|
-
return
|
1253
|
+
return Boolean(this.parentCompilation);
|
1255
1254
|
}
|
1256
1255
|
|
1257
1256
|
/**
|
@@ -64,7 +64,6 @@ class ConcatenationScope {
|
|
64
64
|
}
|
65
65
|
|
66
66
|
/**
|
67
|
-
*
|
68
67
|
* @param {string} exportName name of the export
|
69
68
|
* @param {string} symbol identifier of the export in source code
|
70
69
|
*/
|
@@ -78,7 +77,6 @@ class ConcatenationScope {
|
|
78
77
|
}
|
79
78
|
|
80
79
|
/**
|
81
|
-
*
|
82
80
|
* @param {string} exportName name of the export
|
83
81
|
* @param {string} expression expression to be used
|
84
82
|
*/
|
@@ -99,7 +97,6 @@ class ConcatenationScope {
|
|
99
97
|
}
|
100
98
|
|
101
99
|
/**
|
102
|
-
*
|
103
100
|
* @param {Module} module the referenced module
|
104
101
|
* @param {Partial<ModuleReferenceOptions>} options options
|
105
102
|
* @returns {string} the reference as identifier
|
@@ -138,7 +135,7 @@ class ConcatenationScope {
|
|
138
135
|
static matchModuleReference(name) {
|
139
136
|
const match = MODULE_REFERENCE_REGEXP.exec(name);
|
140
137
|
if (!match) return null;
|
141
|
-
const index =
|
138
|
+
const index = Number(match[1]);
|
142
139
|
const asiSafe = match[5];
|
143
140
|
return {
|
144
141
|
index,
|
@@ -146,8 +143,8 @@ class ConcatenationScope {
|
|
146
143
|
match[2] === "ns"
|
147
144
|
? []
|
148
145
|
: JSON.parse(Buffer.from(match[2], "hex").toString("utf-8")),
|
149
|
-
call:
|
150
|
-
directImport:
|
146
|
+
call: Boolean(match[3]),
|
147
|
+
directImport: Boolean(match[4]),
|
151
148
|
asiSafe: asiSafe ? asiSafe === "1" : undefined
|
152
149
|
};
|
153
150
|
}
|
@@ -27,13 +27,12 @@ const wrapInCondition = (condition, source) => {
|
|
27
27
|
"}",
|
28
28
|
""
|
29
29
|
]);
|
30
|
-
} else {
|
31
|
-
return new ConcatSource(
|
32
|
-
`if (${condition}) {\n`,
|
33
|
-
new PrefixSource("\t", source),
|
34
|
-
"}\n"
|
35
|
-
);
|
36
30
|
}
|
31
|
+
return new ConcatSource(
|
32
|
+
`if (${condition}) {\n`,
|
33
|
+
new PrefixSource("\t", source),
|
34
|
+
"}\n"
|
35
|
+
);
|
37
36
|
};
|
38
37
|
|
39
38
|
/**
|
@@ -54,7 +53,7 @@ class ConditionalInitFragment extends InitFragment {
|
|
54
53
|
position,
|
55
54
|
key,
|
56
55
|
runtimeCondition = true,
|
57
|
-
endContent
|
56
|
+
endContent = undefined
|
58
57
|
) {
|
59
58
|
super(content, stage, position, key, endContent);
|
60
59
|
this.runtimeCondition = runtimeCondition;
|
package/lib/ConstPlugin.js
CHANGED
@@ -207,21 +207,13 @@ class ConstPlugin {
|
|
207
207
|
// NOTE: When code runs in strict mode, `var` declarations
|
208
208
|
// are hoisted but `function` declarations don't.
|
209
209
|
//
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
declarations
|
215
|
-
|
216
|
-
|
217
|
-
declarations = getHoistedDeclarations(branchToRemove, true);
|
218
|
-
}
|
219
|
-
let replacement;
|
220
|
-
if (declarations.length > 0) {
|
221
|
-
replacement = `{ var ${declarations.join(", ")}; }`;
|
222
|
-
} else {
|
223
|
-
replacement = "{}";
|
224
|
-
}
|
210
|
+
const declarations = parser.scope.isStrict
|
211
|
+
? getHoistedDeclarations(branchToRemove, false)
|
212
|
+
: getHoistedDeclarations(branchToRemove, true);
|
213
|
+
const replacement =
|
214
|
+
declarations.length > 0
|
215
|
+
? `{ var ${declarations.join(", ")}; }`
|
216
|
+
: "{}";
|
225
217
|
const dep = new ConstDependency(
|
226
218
|
replacement,
|
227
219
|
/** @type {Range} */ (branchToRemove.range)
|
@@ -22,9 +22,9 @@ class ContextExclusionPlugin {
|
|
22
22
|
*/
|
23
23
|
apply(compiler) {
|
24
24
|
compiler.hooks.contextModuleFactory.tap("ContextExclusionPlugin", cmf => {
|
25
|
-
cmf.hooks.contextModuleFiles.tap("ContextExclusionPlugin", files =>
|
26
|
-
|
27
|
-
|
25
|
+
cmf.hooks.contextModuleFiles.tap("ContextExclusionPlugin", files =>
|
26
|
+
files.filter(filePath => !this.negativeMatcher.test(filePath))
|
27
|
+
);
|
28
28
|
});
|
29
29
|
}
|
30
30
|
}
|
package/lib/ContextModule.js
CHANGED
@@ -30,6 +30,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
30
30
|
/** @typedef {import("webpack-sources").Source} Source */
|
31
31
|
/** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
|
32
32
|
/** @typedef {import("./Chunk")} Chunk */
|
33
|
+
/** @typedef {import("./Chunk").ChunkId} ChunkId */
|
33
34
|
/** @typedef {import("./ChunkGraph")} ChunkGraph */
|
34
35
|
/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
|
35
36
|
/** @typedef {import("./ChunkGroup").RawChunkGroupOptions} RawChunkGroupOptions */
|
@@ -86,7 +87,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
86
87
|
|
87
88
|
/**
|
88
89
|
* @callback ResolveDependenciesCallback
|
89
|
-
* @param {
|
90
|
+
* @param {Error | null} err
|
90
91
|
* @param {ContextElementDependency[]=} dependencies
|
91
92
|
*/
|
92
93
|
|
@@ -99,7 +100,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
99
100
|
|
100
101
|
/** @typedef {1 | 3 | 7 | 9} FakeMapType */
|
101
102
|
|
102
|
-
/** @typedef {
|
103
|
+
/** @typedef {Record<ModuleId, FakeMapType>} FakeMap */
|
103
104
|
|
104
105
|
const SNAPSHOT_OPTIONS = { timestamp: true };
|
105
106
|
|
@@ -190,8 +191,10 @@ class ContextModule extends Module {
|
|
190
191
|
* @returns {string} pretty RegExp
|
191
192
|
*/
|
192
193
|
_prettyRegExp(regexString, stripSlash = true) {
|
193
|
-
const str =
|
194
|
-
|
194
|
+
const str = stripSlash
|
195
|
+
? regexString.source + regexString.flags
|
196
|
+
: `${regexString}`;
|
197
|
+
return str.replace(/!/g, "%21").replace(/\|/g, "%7C");
|
195
198
|
}
|
196
199
|
|
197
200
|
_createIdentifier() {
|
@@ -270,15 +273,15 @@ class ContextModule extends Module {
|
|
270
273
|
readableIdentifier(requestShortener) {
|
271
274
|
let identifier;
|
272
275
|
if (this.context) {
|
273
|
-
identifier = requestShortener.shorten(this.context)
|
276
|
+
identifier = `${requestShortener.shorten(this.context)}/`;
|
274
277
|
} else if (
|
275
278
|
typeof this.options.resource === "string" ||
|
276
279
|
this.options.resource === false
|
277
280
|
) {
|
278
|
-
identifier = requestShortener.shorten(`${this.options.resource}`)
|
281
|
+
identifier = `${requestShortener.shorten(`${this.options.resource}`)}/`;
|
279
282
|
} else {
|
280
283
|
identifier = this.options.resource
|
281
|
-
.map(r => requestShortener.shorten(r)
|
284
|
+
.map(r => `${requestShortener.shorten(r)}/`)
|
282
285
|
.join(" ");
|
283
286
|
}
|
284
287
|
if (this.options.resourceQuery) {
|
@@ -563,7 +566,7 @@ class ContextModule extends Module {
|
|
563
566
|
} else if (typeof this.options.resource === "string") {
|
564
567
|
contextDependencies.add(this.options.resource);
|
565
568
|
} else if (this.options.resource === false) {
|
566
|
-
|
569
|
+
// Do nothing
|
567
570
|
} else {
|
568
571
|
for (const res of this.options.resource) contextDependencies.add(res);
|
569
572
|
}
|
@@ -600,7 +603,7 @@ class ContextModule extends Module {
|
|
600
603
|
/**
|
601
604
|
* @param {Dependency[]} dependencies all dependencies
|
602
605
|
* @param {ChunkGraph} chunkGraph chunk graph
|
603
|
-
* @returns {FakeMap} fake map
|
606
|
+
* @returns {FakeMap | FakeMapType} fake map
|
604
607
|
*/
|
605
608
|
getFakeMap(dependencies, chunkGraph) {
|
606
609
|
if (!this.options.namespaceObject) {
|
@@ -619,13 +622,14 @@ class ContextModule extends Module {
|
|
619
622
|
)
|
620
623
|
.filter(Boolean)
|
621
624
|
.sort(comparator);
|
625
|
+
/** @type {FakeMap} */
|
622
626
|
const fakeMap = Object.create(null);
|
623
627
|
for (const module of sortedModules) {
|
624
628
|
const exportsType = module.getExportsType(
|
625
629
|
moduleGraph,
|
626
630
|
this.options.namespaceObject === "strict"
|
627
631
|
);
|
628
|
-
const id = chunkGraph.getModuleId(module);
|
632
|
+
const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module));
|
629
633
|
switch (exportsType) {
|
630
634
|
case "namespace":
|
631
635
|
fakeMap[id] = 9;
|
@@ -666,7 +670,7 @@ class ContextModule extends Module {
|
|
666
670
|
}
|
667
671
|
|
668
672
|
/**
|
669
|
-
* @param {FakeMap} fakeMap fake map
|
673
|
+
* @param {FakeMap | FakeMapType} fakeMap fake map
|
670
674
|
* @returns {string} fake map init statement
|
671
675
|
*/
|
672
676
|
getFakeMapInitStatement(fakeMap) {
|
@@ -690,7 +694,7 @@ class ContextModule extends Module {
|
|
690
694
|
}
|
691
695
|
|
692
696
|
/**
|
693
|
-
* @param {FakeMap} fakeMap fake map
|
697
|
+
* @param {FakeMap | FakeMapType} fakeMap fake map
|
694
698
|
* @param {boolean=} asyncModule us async module
|
695
699
|
* @param {string=} fakeMapDataExpression fake map data expression
|
696
700
|
* @returns {string} module object source
|
@@ -942,15 +946,19 @@ module.exports = webpackAsyncContext;`;
|
|
942
946
|
chunkGraph
|
943
947
|
);
|
944
948
|
const hasFakeMap = typeof fakeMap === "object";
|
949
|
+
/** @typedef {{userRequest: string, dependency: ContextElementDependency, chunks: undefined | Chunk[], module: Module, block: AsyncDependenciesBlock}} Item */
|
950
|
+
/**
|
951
|
+
* @type {Item[]}
|
952
|
+
*/
|
945
953
|
const items = blocks
|
946
954
|
.map(block => {
|
947
955
|
const dependency =
|
948
956
|
/** @type {ContextElementDependency} */
|
949
957
|
(block.dependencies[0]);
|
950
958
|
return {
|
951
|
-
dependency
|
959
|
+
dependency,
|
952
960
|
module: /** @type {Module} */ (moduleGraph.getModule(dependency)),
|
953
|
-
block
|
961
|
+
block,
|
954
962
|
userRequest: dependency.userRequest,
|
955
963
|
chunks: undefined
|
956
964
|
};
|
@@ -972,18 +980,23 @@ module.exports = webpackAsyncContext;`;
|
|
972
980
|
if (a.userRequest === b.userRequest) return 0;
|
973
981
|
return a.userRequest < b.userRequest ? -1 : 1;
|
974
982
|
});
|
983
|
+
/** @type {Record<string, ModuleId | (ModuleId[] | ChunkId[])>} */
|
975
984
|
const map = Object.create(null);
|
976
985
|
for (const item of sortedItems) {
|
977
|
-
const moduleId =
|
986
|
+
const moduleId =
|
987
|
+
/** @type {ModuleId} */
|
988
|
+
(chunkGraph.getModuleId(item.module));
|
978
989
|
if (shortMode) {
|
979
990
|
map[item.userRequest] = moduleId;
|
980
991
|
} else {
|
992
|
+
/** @type {(ModuleId | ChunkId)[]} */
|
981
993
|
const arrayStart = [moduleId];
|
982
994
|
if (hasFakeMap) {
|
983
995
|
arrayStart.push(fakeMap[moduleId]);
|
984
996
|
}
|
985
997
|
map[item.userRequest] = arrayStart.concat(
|
986
|
-
|
998
|
+
/** @type {Chunk[]} */
|
999
|
+
(item.chunks).map(chunk => /** @type {ChunkId} */ (chunk.id))
|
987
1000
|
);
|
988
1001
|
}
|
989
1002
|
}
|
@@ -1084,7 +1097,7 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
1084
1097
|
* @returns {string} the source code
|
1085
1098
|
*/
|
1086
1099
|
getSourceString(asyncMode, { runtimeTemplate, chunkGraph }) {
|
1087
|
-
const id = chunkGraph.getModuleId(this);
|
1100
|
+
const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(this));
|
1088
1101
|
if (asyncMode === "lazy") {
|
1089
1102
|
if (this.blocks && this.blocks.length > 0) {
|
1090
1103
|
return this.getLazySource(this.blocks, id, {
|
@@ -1122,10 +1135,12 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
1122
1135
|
}
|
1123
1136
|
return this.getSourceForEmptyAsyncContext(id, runtimeTemplate);
|
1124
1137
|
}
|
1125
|
-
if (
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1138
|
+
if (
|
1139
|
+
asyncMode === "weak" &&
|
1140
|
+
this.dependencies &&
|
1141
|
+
this.dependencies.length > 0
|
1142
|
+
) {
|
1143
|
+
return this.getWeakSyncSource(this.dependencies, id, chunkGraph);
|
1129
1144
|
}
|
1130
1145
|
if (this.dependencies && this.dependencies.length > 0) {
|
1131
1146
|
return this.getSyncSource(this.dependencies, id, chunkGraph);
|