webpack 5.97.1 → 5.104.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +368 -434
- package/bin/webpack.js +15 -9
- package/hot/dev-server.js +18 -3
- package/hot/emitter-event-target.js +7 -0
- package/hot/lazy-compilation-node.js +45 -29
- package/hot/lazy-compilation-universal.js +18 -0
- package/hot/lazy-compilation-web.js +15 -5
- package/hot/load-http.js +7 -0
- package/hot/log.js +15 -15
- package/hot/only-dev-server.js +19 -4
- package/hot/poll.js +1 -0
- package/lib/APIPlugin.js +48 -50
- package/lib/AbstractMethodError.js +1 -0
- package/lib/AsyncDependenciesBlock.js +4 -5
- package/lib/AutomaticPrefetchPlugin.js +22 -22
- package/lib/BannerPlugin.js +35 -40
- package/lib/Cache.js +12 -9
- package/lib/CacheFacade.js +13 -13
- package/lib/CaseSensitiveModulesWarning.js +6 -6
- package/lib/Chunk.js +68 -47
- package/lib/ChunkGraph.js +174 -95
- package/lib/ChunkGroup.js +32 -24
- package/lib/ChunkTemplate.js +8 -8
- package/lib/CleanPlugin.js +90 -42
- package/lib/CodeGenerationResults.js +12 -9
- package/lib/CompatibilityPlugin.js +70 -21
- package/lib/Compilation.js +827 -550
- package/lib/Compiler.js +137 -109
- package/lib/ConcatenationScope.js +45 -8
- package/lib/ConditionalInitFragment.js +1 -1
- package/lib/ConstPlugin.js +89 -59
- package/lib/ContextExclusionPlugin.js +5 -4
- package/lib/ContextModule.js +66 -51
- package/lib/ContextModuleFactory.js +51 -30
- package/lib/ContextReplacementPlugin.js +89 -34
- package/lib/CssModule.js +8 -4
- package/lib/DefinePlugin.js +209 -57
- package/lib/DelegatedModule.js +34 -23
- package/lib/DelegatedModuleFactoryPlugin.js +27 -24
- package/lib/DelegatedPlugin.js +4 -2
- package/lib/DependenciesBlock.js +0 -2
- package/lib/Dependency.js +37 -19
- package/lib/DependencyTemplate.js +2 -0
- package/lib/DependencyTemplates.js +5 -6
- package/lib/DllEntryPlugin.js +8 -4
- package/lib/DllModule.js +11 -12
- package/lib/DllModuleFactory.js +2 -2
- package/lib/DllPlugin.js +9 -6
- package/lib/DllReferencePlugin.js +60 -65
- package/lib/DotenvPlugin.js +462 -0
- package/lib/DynamicEntryPlugin.js +8 -8
- package/lib/EntryOptionPlugin.js +8 -6
- package/lib/EntryPlugin.js +5 -3
- package/lib/Entrypoint.js +19 -0
- package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
- package/lib/EnvironmentPlugin.js +26 -19
- package/lib/ErrorHelpers.js +6 -6
- package/lib/EvalDevToolModulePlugin.js +17 -14
- package/lib/EvalSourceMapDevToolPlugin.js +156 -142
- package/lib/ExportsInfo.js +180 -115
- package/lib/ExportsInfoApiPlugin.js +2 -2
- package/lib/ExternalModule.js +256 -102
- package/lib/ExternalModuleFactoryPlugin.js +66 -29
- package/lib/ExternalsPlugin.js +57 -2
- package/lib/FileSystemInfo.js +313 -247
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
- package/lib/FlagDependencyExportsPlugin.js +29 -19
- package/lib/FlagDependencyUsagePlugin.js +9 -10
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +43 -10
- package/lib/GraphHelpers.js +11 -3
- package/lib/HookWebpackError.js +35 -7
- package/lib/HotModuleReplacementPlugin.js +149 -108
- package/lib/HotUpdateChunk.js +0 -3
- package/lib/IgnoreErrorModuleFactory.js +2 -2
- package/lib/IgnorePlugin.js +16 -13
- package/lib/IgnoreWarningsPlugin.js +6 -4
- package/lib/InitFragment.js +41 -23
- package/lib/InvalidDependenciesModuleWarning.js +2 -3
- package/lib/JavascriptMetaInfoPlugin.js +2 -4
- package/lib/LibManifestPlugin.js +12 -13
- package/lib/LoaderOptionsPlugin.js +12 -14
- package/lib/LoaderTargetPlugin.js +5 -3
- package/lib/MainTemplate.js +18 -29
- package/lib/ManifestPlugin.js +235 -0
- package/lib/Module.js +138 -60
- package/lib/ModuleBuildError.js +4 -2
- package/lib/ModuleDependencyError.js +4 -3
- package/lib/ModuleDependencyWarning.js +4 -3
- package/lib/ModuleError.js +1 -1
- package/lib/ModuleFactory.js +10 -3
- package/lib/ModuleFilenameHelpers.js +63 -60
- package/lib/ModuleGraph.js +195 -70
- package/lib/ModuleGraphConnection.js +14 -20
- package/lib/ModuleInfoHeaderPlugin.js +15 -16
- package/lib/ModuleNotFoundError.js +1 -1
- package/lib/ModuleParseError.js +8 -4
- package/lib/ModuleSourceTypeConstants.js +189 -0
- package/lib/ModuleTemplate.js +7 -8
- package/lib/ModuleTypeConstants.js +37 -15
- package/lib/ModuleWarning.js +1 -1
- package/lib/MultiCompiler.js +64 -49
- package/lib/MultiStats.js +19 -14
- package/lib/MultiWatching.js +7 -11
- package/lib/NoEmitOnErrorsPlugin.js +5 -3
- package/lib/NodeStuffPlugin.js +438 -126
- package/lib/NormalModule.js +322 -201
- package/lib/NormalModuleFactory.js +230 -117
- package/lib/NormalModuleReplacementPlugin.js +37 -39
- package/lib/NullFactory.js +3 -2
- package/lib/OptimizationStages.js +1 -1
- package/lib/OptionsApply.js +1 -1
- package/lib/Parser.js +5 -3
- package/lib/PlatformPlugin.js +3 -1
- package/lib/PrefetchPlugin.js +6 -4
- package/lib/ProgressPlugin.js +48 -49
- package/lib/ProvidePlugin.js +7 -5
- package/lib/RawModule.js +26 -12
- package/lib/RecordIdsPlugin.js +88 -110
- package/lib/RequestShortener.js +3 -1
- package/lib/ResolverFactory.js +15 -14
- package/lib/RuntimeGlobals.js +216 -153
- package/lib/RuntimeModule.js +7 -6
- package/lib/RuntimePlugin.js +115 -62
- package/lib/RuntimeTemplate.js +248 -76
- package/lib/SelfModuleFactory.js +2 -2
- package/lib/SizeFormatHelpers.js +2 -2
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +17 -27
- package/lib/SourceMapDevToolPlugin.js +72 -59
- package/lib/Stats.js +2 -3
- package/lib/Template.js +31 -24
- package/lib/TemplatedPathPlugin.js +24 -21
- package/lib/UseStrictPlugin.js +1 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +36 -37
- package/lib/WarnDeprecatedOptionPlugin.js +7 -8
- package/lib/WarnNoModeSetPlugin.js +3 -1
- package/lib/WatchIgnorePlugin.js +11 -9
- package/lib/Watching.js +27 -29
- package/lib/WebpackError.js +10 -3
- package/lib/WebpackIsIncludedPlugin.js +4 -5
- package/lib/WebpackOptionsApply.js +263 -135
- package/lib/asset/AssetBytesGenerator.js +171 -0
- package/lib/asset/AssetBytesParser.js +37 -0
- package/lib/asset/AssetGenerator.js +285 -223
- package/lib/asset/AssetModulesPlugin.js +103 -41
- package/lib/asset/AssetParser.js +7 -3
- package/lib/asset/AssetSourceGenerator.js +41 -17
- package/lib/asset/RawDataUrlModule.js +17 -9
- package/lib/async-modules/AsyncModuleHelpers.js +52 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +39 -24
- package/lib/async-modules/InferAsyncModulesPlugin.js +25 -26
- package/lib/buildChunkGraph.js +36 -17
- package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
- package/lib/cache/IdleFileCachePlugin.js +22 -20
- package/lib/cache/MemoryCachePlugin.js +3 -3
- package/lib/cache/MemoryWithGcCachePlugin.js +17 -11
- package/lib/cache/PackFileCacheStrategy.js +198 -170
- package/lib/cache/ResolverCachePlugin.js +58 -48
- package/lib/cache/getLazyHashedEtag.js +5 -4
- package/lib/cli.js +197 -39
- package/lib/config/browserslistTargetHandler.js +110 -85
- package/lib/config/defaults.js +514 -113
- package/lib/config/normalization.js +91 -64
- package/lib/config/target.js +30 -18
- package/lib/container/ContainerEntryDependency.js +0 -1
- package/lib/container/ContainerEntryModule.js +16 -15
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerPlugin.js +5 -6
- package/lib/container/ContainerReferencePlugin.js +27 -30
- package/lib/container/FallbackDependency.js +2 -1
- package/lib/container/FallbackModule.js +19 -14
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +7 -7
- package/lib/container/ModuleFederationPlugin.js +4 -4
- package/lib/container/RemoteModule.js +14 -14
- package/lib/container/RemoteRuntimeModule.js +2 -2
- package/lib/container/options.js +9 -9
- package/lib/css/CssGenerator.js +366 -74
- package/lib/css/CssLoadingRuntimeModule.js +26 -16
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
- package/lib/css/CssModulesPlugin.js +191 -142
- package/lib/css/CssParser.js +1756 -740
- package/lib/css/walkCssTokens.js +180 -67
- package/lib/debug/ProfilingPlugin.js +135 -51
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +29 -28
- package/lib/dependencies/AMDPlugin.js +18 -11
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -4
- package/lib/dependencies/AMDRequireContextDependency.js +2 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +35 -26
- package/lib/dependencies/AMDRuntimeModules.js +3 -1
- package/lib/dependencies/CachedConstDependency.js +24 -18
- package/lib/dependencies/CommonJsExportRequireDependency.js +31 -24
- package/lib/dependencies/CommonJsExportsDependency.js +2 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +50 -36
- package/lib/dependencies/CommonJsFullRequireDependency.js +7 -13
- package/lib/dependencies/CommonJsImportsParserPlugin.js +146 -127
- package/lib/dependencies/CommonJsPlugin.js +29 -18
- package/lib/dependencies/CommonJsRequireContextDependency.js +4 -3
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
- package/lib/dependencies/ConstDependency.js +2 -2
- package/lib/dependencies/ContextDependency.js +10 -5
- package/lib/dependencies/ContextDependencyHelpers.js +21 -13
- package/lib/dependencies/ContextDependencyTemplateAsId.js +10 -9
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +13 -10
- package/lib/dependencies/ContextElementDependency.js +23 -12
- package/lib/dependencies/CssIcssExportDependency.js +402 -22
- package/lib/dependencies/CssIcssImportDependency.js +116 -51
- package/lib/dependencies/CssIcssSymbolDependency.js +33 -35
- package/lib/dependencies/CssImportDependency.js +17 -14
- package/lib/dependencies/CssUrlDependency.js +8 -13
- package/lib/dependencies/DynamicExports.js +19 -19
- package/lib/dependencies/ExportsInfoDependency.js +13 -10
- package/lib/dependencies/ExternalModuleDependency.js +7 -7
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +96 -5
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +10 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +19 -8
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +136 -99
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +152 -61
- package/lib/dependencies/HarmonyExportInitFragment.js +2 -2
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +2 -2
- package/lib/dependencies/HarmonyExports.js +5 -5
- package/lib/dependencies/HarmonyImportDependency.js +92 -45
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +201 -163
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +5 -6
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +69 -42
- package/lib/dependencies/HarmonyModulesPlugin.js +16 -11
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -15
- package/lib/dependencies/ImportContextDependency.js +15 -1
- package/lib/dependencies/ImportDependency.js +25 -7
- package/lib/dependencies/ImportEagerDependency.js +7 -5
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +23 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -2
- package/lib/dependencies/ImportMetaPlugin.js +172 -20
- package/lib/dependencies/ImportParserPlugin.js +327 -49
- package/lib/dependencies/ImportPhase.js +121 -0
- package/lib/dependencies/ImportPlugin.js +3 -1
- package/lib/dependencies/ImportWeakDependency.js +7 -5
- package/lib/dependencies/JsonExportsDependency.js +54 -28
- package/lib/dependencies/LoaderDependency.js +0 -3
- package/lib/dependencies/LoaderImportDependency.js +0 -3
- package/lib/dependencies/LoaderPlugin.js +24 -25
- package/lib/dependencies/LocalModulesHelpers.js +4 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
- package/lib/dependencies/ModuleDependency.js +14 -13
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/ProvidedDependency.js +8 -10
- package/lib/dependencies/PureExpressionDependency.js +1 -2
- package/lib/dependencies/RequireContextDependency.js +2 -1
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +47 -44
- package/lib/dependencies/RequireContextPlugin.js +5 -2
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +3 -3
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +101 -99
- package/lib/dependencies/RequireEnsurePlugin.js +6 -6
- package/lib/dependencies/RequireIncludeDependency.js +2 -2
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
- package/lib/dependencies/RequireIncludePlugin.js +1 -0
- package/lib/dependencies/RequireResolveContextDependency.js +1 -1
- package/lib/dependencies/RequireResolveDependency.js +3 -3
- package/lib/dependencies/RuntimeRequirementsDependency.js +3 -4
- package/lib/dependencies/StaticExportsDependency.js +3 -5
- package/lib/dependencies/SystemPlugin.js +4 -4
- package/lib/dependencies/URLContextDependency.js +65 -0
- package/lib/dependencies/URLDependency.js +3 -8
- package/lib/dependencies/URLPlugin.js +18 -159
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -3
- package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
- package/lib/dependencies/WorkerDependency.js +8 -6
- package/lib/dependencies/WorkerPlugin.js +131 -67
- package/lib/dependencies/getFunctionExpression.js +2 -2
- package/lib/dependencies/processExportInfo.js +4 -4
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -1
- package/lib/esm/ModuleChunkFormatPlugin.js +232 -179
- package/lib/esm/ModuleChunkLoadingPlugin.js +112 -57
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +102 -28
- package/lib/formatLocation.js +2 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +41 -29
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -33
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
- package/lib/hmr/LazyCompilationPlugin.js +67 -54
- package/lib/hmr/lazyCompilationBackend.js +23 -18
- package/lib/ids/ChunkModuleIdRangePlugin.js +14 -11
- package/lib/ids/DeterministicChunkIdsPlugin.js +32 -37
- package/lib/ids/DeterministicModuleIdsPlugin.js +52 -52
- package/lib/ids/HashedModuleIdsPlugin.js +15 -13
- package/lib/ids/IdHelpers.js +66 -49
- package/lib/ids/NamedChunkIdsPlugin.js +14 -17
- package/lib/ids/NamedModuleIdsPlugin.js +12 -14
- package/lib/ids/NaturalChunkIdsPlugin.js +6 -4
- package/lib/ids/NaturalModuleIdsPlugin.js +4 -3
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +8 -7
- package/lib/ids/SyncModuleIdsPlugin.js +18 -13
- package/lib/index.js +54 -14
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +116 -119
- package/lib/javascript/BasicEvaluatedExpression.js +26 -18
- package/lib/javascript/ChunkFormatHelpers.js +70 -0
- package/lib/javascript/ChunkHelpers.js +17 -5
- package/lib/javascript/CommonJsChunkFormatPlugin.js +114 -141
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -4
- package/lib/javascript/JavascriptGenerator.js +122 -100
- package/lib/javascript/JavascriptModulesPlugin.js +332 -152
- package/lib/javascript/JavascriptParser.js +1488 -1052
- package/lib/javascript/JavascriptParserHelpers.js +48 -47
- package/lib/javascript/StartupHelpers.js +23 -22
- package/lib/json/JsonData.js +4 -4
- package/lib/json/JsonGenerator.js +66 -32
- package/lib/json/JsonModulesPlugin.js +16 -6
- package/lib/json/JsonParser.js +23 -8
- package/lib/library/AbstractLibraryPlugin.js +45 -10
- package/lib/library/AmdLibraryPlugin.js +7 -5
- package/lib/library/AssignLibraryPlugin.js +71 -17
- package/lib/library/EnableLibraryPlugin.js +51 -25
- package/lib/library/ExportPropertyLibraryPlugin.js +12 -18
- package/lib/library/JsonpLibraryPlugin.js +5 -2
- package/lib/library/ModuleLibraryPlugin.js +230 -18
- package/lib/library/SystemLibraryPlugin.js +29 -11
- package/lib/library/UmdLibraryPlugin.js +35 -32
- package/lib/logging/Logger.js +18 -15
- package/lib/logging/createConsoleLogger.js +27 -27
- package/lib/logging/runtime.js +11 -11
- package/lib/logging/truncateArgs.js +5 -5
- package/lib/node/CommonJsChunkLoadingPlugin.js +72 -75
- package/lib/node/NodeEnvironmentPlugin.js +9 -3
- package/lib/node/NodeTargetPlugin.js +9 -1
- package/lib/node/NodeTemplatePlugin.js +2 -2
- package/lib/node/NodeWatchFileSystem.js +4 -4
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +10 -11
- package/lib/node/ReadFileCompileWasmPlugin.js +11 -14
- package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -30
- package/lib/node/nodeConsole.js +12 -7
- package/lib/optimize/AggressiveMergingPlugin.js +46 -47
- package/lib/optimize/AggressiveSplittingPlugin.js +233 -238
- package/lib/optimize/ConcatenatedModule.js +620 -251
- package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
- package/lib/optimize/FlagIncludedChunksPlugin.js +93 -96
- package/lib/optimize/InnerGraph.js +139 -124
- package/lib/optimize/InnerGraphPlugin.js +29 -24
- package/lib/optimize/LimitChunkCountPlugin.js +32 -8
- package/lib/optimize/MangleExportsPlugin.js +22 -22
- package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
- package/lib/optimize/MinChunkSizePlugin.js +12 -7
- package/lib/optimize/ModuleConcatenationPlugin.js +92 -71
- package/lib/optimize/RealContentHashPlugin.js +58 -44
- package/lib/optimize/RemoveEmptyChunksPlugin.js +8 -5
- package/lib/optimize/RemoveParentModulesPlugin.js +7 -4
- package/lib/optimize/RuntimeChunkPlugin.js +22 -25
- package/lib/optimize/SideEffectsFlagPlugin.js +44 -26
- package/lib/optimize/SplitChunksPlugin.js +209 -158
- package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +8 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +61 -64
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/rules/BasicEffectRulePlugin.js +14 -5
- package/lib/rules/BasicMatcherRulePlugin.js +18 -7
- package/lib/rules/ObjectMatcherRulePlugin.js +17 -6
- package/lib/rules/RuleSetCompiler.js +73 -32
- package/lib/rules/UseEffectRulePlugin.js +61 -25
- package/lib/runtime/AsyncModuleRuntimeModule.js +74 -9
- package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -4
- package/lib/runtime/BaseUriRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +0 -1
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +34 -35
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +248 -0
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +39 -42
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +10 -9
- package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
- package/lib/runtime/SystemContextRuntimeModule.js +0 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
- package/lib/schemes/DataUriPlugin.js +9 -31
- package/lib/schemes/FileUriPlugin.js +11 -6
- package/lib/schemes/HttpUriPlugin.js +381 -261
- package/lib/schemes/VirtualUrlPlugin.js +222 -0
- package/lib/serialization/AggregateErrorSerializer.js +41 -0
- package/lib/serialization/BinaryMiddleware.js +51 -33
- package/lib/serialization/ErrorObjectSerializer.js +7 -2
- package/lib/serialization/FileMiddleware.js +101 -71
- package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
- package/lib/serialization/ObjectMiddleware.js +130 -54
- package/lib/serialization/PlainObjectSerializer.js +1 -1
- package/lib/serialization/Serializer.js +38 -20
- package/lib/serialization/SerializerMiddleware.js +121 -49
- package/lib/serialization/SingleItemMiddleware.js +9 -7
- package/lib/serialization/types.js +1 -1
- package/lib/sharing/ConsumeSharedModule.js +9 -9
- package/lib/sharing/ConsumeSharedPlugin.js +14 -14
- package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -8
- package/lib/sharing/ProvideSharedModule.js +9 -11
- package/lib/sharing/ProvideSharedModuleFactory.js +5 -3
- package/lib/sharing/ProvideSharedPlugin.js +15 -10
- package/lib/sharing/SharePlugin.js +3 -4
- package/lib/sharing/ShareRuntimeModule.js +7 -6
- package/lib/sharing/resolveMatchedConfigs.js +27 -13
- package/lib/sharing/utils.js +37 -43
- package/lib/stats/DefaultStatsFactoryPlugin.js +455 -286
- package/lib/stats/DefaultStatsPresetPlugin.js +77 -46
- package/lib/stats/DefaultStatsPrinterPlugin.js +583 -419
- package/lib/stats/StatsFactory.js +75 -32
- package/lib/stats/StatsPrinter.js +71 -51
- package/lib/url/URLParserPlugin.js +264 -0
- package/lib/util/ArrayHelpers.js +6 -8
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +11 -10
- package/lib/util/Hash.js +37 -5
- package/lib/util/IterableHelpers.js +4 -4
- package/lib/util/LazyBucketSortedSet.js +46 -27
- package/lib/util/LazySet.js +16 -10
- package/lib/util/MapHelpers.js +1 -1
- package/lib/util/ParallelismFactorCalculator.js +2 -2
- package/lib/util/Semaphore.js +3 -3
- package/lib/util/SetHelpers.js +6 -6
- package/lib/util/SortableSet.js +11 -9
- package/lib/util/StackedCacheMap.js +2 -2
- package/lib/util/StackedMap.js +3 -3
- package/lib/util/StringXor.js +2 -1
- package/lib/util/TupleQueue.js +11 -8
- package/lib/util/TupleSet.js +44 -19
- package/lib/util/URLAbsoluteSpecifier.js +3 -4
- package/lib/util/WeakTupleMap.js +56 -42
- package/lib/util/binarySearchBounds.js +4 -3
- package/lib/util/chainedImports.js +3 -1
- package/lib/util/cleverMerge.js +171 -107
- package/lib/util/comparators.js +265 -162
- package/lib/util/compileBooleanMatcher.js +120 -41
- package/lib/util/concatenate.js +20 -16
- package/lib/util/conventions.js +73 -74
- package/lib/util/create-schema-validation.js +8 -8
- package/lib/util/createHash.js +32 -135
- package/lib/util/dataURL.js +39 -0
- package/lib/util/deprecation.js +119 -116
- package/lib/util/deterministicGrouping.js +56 -47
- package/lib/util/extractSourceMap.js +319 -0
- package/lib/util/extractUrlAndGlobal.js +1 -1
- package/lib/util/findGraphRoots.js +19 -9
- package/lib/util/fs.js +169 -141
- package/lib/util/hash/BatchedHash.js +50 -10
- package/lib/util/hash/BulkUpdateHash.js +138 -0
- package/lib/util/hash/DebugHash.js +75 -0
- package/lib/util/hash/hash-digest.js +216 -0
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +59 -17
- package/lib/util/identifier.js +124 -61
- package/lib/util/internalSerializables.js +4 -6
- package/lib/util/magicComment.js +9 -5
- package/lib/util/makeSerializable.js +2 -2
- package/lib/util/memoize.js +5 -2
- package/lib/util/objectToMap.js +3 -2
- package/lib/util/processAsyncTree.js +5 -5
- package/lib/util/propertyAccess.js +1 -1
- package/lib/util/propertyName.js +2 -3
- package/lib/util/registerExternalSerializer.js +16 -20
- package/lib/util/removeBOM.js +25 -0
- package/lib/util/runtime.js +72 -56
- package/lib/util/semver.js +44 -33
- package/lib/util/serialization.js +56 -56
- package/lib/util/smartGrouping.js +42 -27
- package/lib/util/source.js +5 -4
- package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
- package/lib/validateSchema.js +7 -9
- package/lib/wasm/EnableWasmLoadingPlugin.js +22 -12
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -5
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +15 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +28 -22
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +47 -57
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -10
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +8 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +23 -17
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +55 -57
- package/lib/wasm-sync/WebAssemblyGenerator.js +56 -41
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +6 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +25 -10
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +11 -12
- package/lib/wasm-sync/WebAssemblyParser.js +10 -17
- package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
- package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
- package/lib/web/FetchCompileWasmPlugin.js +6 -8
- package/lib/web/JsonpChunkLoadingPlugin.js +74 -74
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +10 -26
- package/lib/web/JsonpTemplatePlugin.js +0 -1
- package/lib/webpack.js +107 -87
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +79 -75
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +38 -51
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
- package/module.d.ts +5 -0
- package/package.json +149 -129
- package/schemas/WebpackOptions.check.d.ts +1 -1
- package/schemas/WebpackOptions.check.js +2 -2
- package/schemas/WebpackOptions.json +543 -190
- package/schemas/plugins/BannerPlugin.check.d.ts +1 -1
- package/schemas/plugins/BannerPlugin.check.js +2 -2
- package/schemas/plugins/BannerPlugin.json +4 -0
- package/schemas/plugins/DllPlugin.check.d.ts +1 -1
- package/schemas/plugins/DllPlugin.check.js +1 -1
- package/schemas/plugins/DllReferencePlugin.check.d.ts +1 -1
- package/schemas/plugins/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/IgnorePlugin.check.d.ts +1 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -1
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
- package/schemas/plugins/{HashedModuleIdsPlugin.check.d.ts → ManifestPlugin.check.d.ts} +2 -2
- package/schemas/plugins/ManifestPlugin.check.js +6 -0
- package/schemas/plugins/ManifestPlugin.json +98 -0
- package/schemas/plugins/ProgressPlugin.check.d.ts +1 -1
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -2
- package/schemas/plugins/SourceMapDevToolPlugin.json +23 -6
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +1 -1
- package/schemas/plugins/WatchIgnorePlugin.check.js +1 -1
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +2 -2
- package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
- package/schemas/plugins/container/ExternalsType.check.d.ts +1 -1
- package/schemas/plugins/container/ExternalsType.check.js +2 -2
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -2
- package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +2 -2
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +2 -2
- package/schemas/plugins/css/CssParserOptions.check.d.ts +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +2 -2
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +1 -1
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
- package/schemas/plugins/{HashedModuleIdsPlugin.json → ids/HashedModuleIdsPlugin.json} +15 -2
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +1 -1
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -1
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +1 -1
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -1
- package/schemas/plugins/{css/CssGlobalParserOptions.check.d.ts → json/JsonModulesPluginGenerator.check.d.ts} +1 -1
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
- package/schemas/plugins/{css/CssGlobalGeneratorOptions.check.d.ts → json/JsonModulesPluginParser.check.d.ts} +1 -1
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
- package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +1 -1
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +1 -1
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- 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/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +1 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +1 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +1 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +1 -1
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +1 -1
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +5115 -1863
- package/SECURITY.md +0 -9
- package/lib/ModuleSourceTypesConstants.js +0 -112
- package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -111
- package/lib/library/ModernModuleLibraryPlugin.js +0 -144
- package/schemas/plugins/HashedModuleIdsPlugin.check.js +0 -6
- package/schemas/plugins/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/JsonModulesPluginParser.check.js +0 -6
- package/schemas/plugins/JsonModulesPluginParser.json +0 -12
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
- package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
- package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
- package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
package/lib/ContextModule.js
CHANGED
|
@@ -9,43 +9,51 @@ const { OriginalSource, RawSource } = require("webpack-sources");
|
|
|
9
9
|
const AsyncDependenciesBlock = require("./AsyncDependenciesBlock");
|
|
10
10
|
const { makeWebpackError } = require("./HookWebpackError");
|
|
11
11
|
const Module = require("./Module");
|
|
12
|
-
const {
|
|
12
|
+
const {
|
|
13
|
+
JAVASCRIPT_TYPE,
|
|
14
|
+
JAVASCRIPT_TYPES
|
|
15
|
+
} = require("./ModuleSourceTypeConstants");
|
|
13
16
|
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
|
14
17
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
15
18
|
const Template = require("./Template");
|
|
16
19
|
const WebpackError = require("./WebpackError");
|
|
17
20
|
const {
|
|
18
21
|
compareLocations,
|
|
19
|
-
|
|
22
|
+
compareModulesById,
|
|
20
23
|
compareSelect,
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
concatComparators,
|
|
25
|
+
keepOriginalOrder
|
|
23
26
|
} = require("./util/comparators");
|
|
24
27
|
const {
|
|
25
28
|
contextify,
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
makePathsRelative,
|
|
30
|
+
parseResource
|
|
28
31
|
} = require("./util/identifier");
|
|
29
32
|
const makeSerializable = require("./util/makeSerializable");
|
|
30
33
|
|
|
31
34
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
32
|
-
/** @typedef {import("../declarations/WebpackOptions").
|
|
35
|
+
/** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
|
|
36
|
+
/** @typedef {import("./config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
|
|
33
37
|
/** @typedef {import("./Chunk")} Chunk */
|
|
34
38
|
/** @typedef {import("./Chunk").ChunkId} ChunkId */
|
|
39
|
+
/** @typedef {import("./Chunk").ChunkName} ChunkName */
|
|
35
40
|
/** @typedef {import("./ChunkGraph")} ChunkGraph */
|
|
36
41
|
/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
|
|
37
42
|
/** @typedef {import("./ChunkGroup").RawChunkGroupOptions} RawChunkGroupOptions */
|
|
38
43
|
/** @typedef {import("./Compilation")} Compilation */
|
|
39
44
|
/** @typedef {import("./Dependency")} Dependency */
|
|
40
|
-
/** @typedef {import("./
|
|
45
|
+
/** @typedef {import("./Dependency").RawReferencedExports} RawReferencedExports */
|
|
41
46
|
/** @typedef {import("./Generator").SourceTypes} SourceTypes */
|
|
47
|
+
/** @typedef {import("./Module").BuildCallback} BuildCallback */
|
|
42
48
|
/** @typedef {import("./Module").BuildInfo} BuildInfo */
|
|
49
|
+
/** @typedef {import("./Module").FileSystemDependencies} FileSystemDependencies */
|
|
43
50
|
/** @typedef {import("./Module").BuildMeta} BuildMeta */
|
|
44
51
|
/** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */
|
|
45
52
|
/** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */
|
|
46
53
|
/** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */
|
|
54
|
+
/** @typedef {import("./Module").LibIdent} LibIdent */
|
|
55
|
+
/** @typedef {import("./Module").NeedBuildCallback} NeedBuildCallback */
|
|
47
56
|
/** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */
|
|
48
|
-
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
|
49
57
|
/** @typedef {import("./RequestShortener")} RequestShortener */
|
|
50
58
|
/** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
|
51
59
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
|
@@ -53,7 +61,6 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
53
61
|
/** @typedef {import("./javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
|
54
62
|
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
55
63
|
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
56
|
-
/** @template T @typedef {import("./util/LazySet")<T>} LazySet<T> */
|
|
57
64
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
|
58
65
|
|
|
59
66
|
/** @typedef {"sync" | "eager" | "weak" | "async-weak" | "lazy" | "lazy-once"} ContextMode Context mode */
|
|
@@ -62,26 +69,26 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
62
69
|
* @typedef {object} ContextOptions
|
|
63
70
|
* @property {ContextMode} mode
|
|
64
71
|
* @property {boolean} recursive
|
|
65
|
-
* @property {RegExp} regExp
|
|
66
|
-
* @property {
|
|
72
|
+
* @property {RegExp | false | null} regExp
|
|
73
|
+
* @property {"strict" | boolean=} namespaceObject
|
|
67
74
|
* @property {string=} addon
|
|
68
|
-
* @property {
|
|
69
|
-
* @property {
|
|
70
|
-
* @property {
|
|
75
|
+
* @property {ChunkName=} chunkName
|
|
76
|
+
* @property {RegExp | null=} include
|
|
77
|
+
* @property {RegExp | null=} exclude
|
|
71
78
|
* @property {RawChunkGroupOptions=} groupOptions
|
|
72
79
|
* @property {string=} typePrefix
|
|
73
80
|
* @property {string=} category
|
|
74
|
-
* @property {
|
|
75
|
-
* @property {string=} layer
|
|
81
|
+
* @property {RawReferencedExports | null=} referencedExports exports referenced from modules (won't be mangled)
|
|
82
|
+
* @property {string | null=} layer
|
|
76
83
|
* @property {ImportAttributes=} attributes
|
|
77
84
|
*/
|
|
78
85
|
|
|
79
86
|
/**
|
|
80
87
|
* @typedef {object} ContextModuleOptionsExtras
|
|
81
|
-
* @property {false|string|string[]} resource
|
|
88
|
+
* @property {false | string | string[]} resource
|
|
82
89
|
* @property {string=} resourceQuery
|
|
83
90
|
* @property {string=} resourceFragment
|
|
84
|
-
* @property {
|
|
91
|
+
* @property {ResolveOptions=} resolveOptions
|
|
85
92
|
*/
|
|
86
93
|
|
|
87
94
|
/** @typedef {ContextOptions & ContextModuleOptionsExtras} ContextModuleOptions */
|
|
@@ -90,6 +97,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
90
97
|
* @callback ResolveDependenciesCallback
|
|
91
98
|
* @param {Error | null} err
|
|
92
99
|
* @param {ContextElementDependency[]=} dependencies
|
|
100
|
+
* @returns {void}
|
|
93
101
|
*/
|
|
94
102
|
|
|
95
103
|
/**
|
|
@@ -103,8 +111,6 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
103
111
|
|
|
104
112
|
/** @typedef {Record<ModuleId, FakeMapType>} FakeMap */
|
|
105
113
|
|
|
106
|
-
const SNAPSHOT_OPTIONS = { timestamp: true };
|
|
107
|
-
|
|
108
114
|
class ContextModule extends Module {
|
|
109
115
|
/**
|
|
110
116
|
* @param {ResolveDependencies} resolveDependencies function to get dependencies in this context
|
|
@@ -159,7 +165,7 @@ class ContextModule extends Module {
|
|
|
159
165
|
* @returns {SourceTypes} types available (do not mutate)
|
|
160
166
|
*/
|
|
161
167
|
getSourceTypes() {
|
|
162
|
-
return
|
|
168
|
+
return JAVASCRIPT_TYPES;
|
|
163
169
|
}
|
|
164
170
|
|
|
165
171
|
/**
|
|
@@ -251,10 +257,12 @@ class ContextModule extends Module {
|
|
|
251
257
|
} else if (this.options.namespaceObject) {
|
|
252
258
|
identifier += "|namespace object";
|
|
253
259
|
}
|
|
260
|
+
if (this.options.attributes) {
|
|
261
|
+
identifier += `|importAttributes: ${JSON.stringify(this.options.attributes)}`;
|
|
262
|
+
}
|
|
254
263
|
if (this.layer) {
|
|
255
264
|
identifier += `|layer: ${this.layer}`;
|
|
256
265
|
}
|
|
257
|
-
|
|
258
266
|
return identifier;
|
|
259
267
|
}
|
|
260
268
|
|
|
@@ -280,7 +288,7 @@ class ContextModule extends Module {
|
|
|
280
288
|
identifier = `${requestShortener.shorten(`${this.options.resource}`)}/`;
|
|
281
289
|
} else {
|
|
282
290
|
identifier = this.options.resource
|
|
283
|
-
.map(r => `${requestShortener.shorten(r)}/`)
|
|
291
|
+
.map((r) => `${requestShortener.shorten(r)}/`)
|
|
284
292
|
.join(" ");
|
|
285
293
|
}
|
|
286
294
|
if (this.options.resourceQuery) {
|
|
@@ -306,7 +314,7 @@ class ContextModule extends Module {
|
|
|
306
314
|
}
|
|
307
315
|
if (this.options.referencedExports) {
|
|
308
316
|
identifier += ` referencedExports: ${this.options.referencedExports
|
|
309
|
-
.map(e => e.join("."))
|
|
317
|
+
.map((e) => e.join("."))
|
|
310
318
|
.join(", ")}`;
|
|
311
319
|
}
|
|
312
320
|
if (this.options.chunkName) {
|
|
@@ -331,7 +339,7 @@ class ContextModule extends Module {
|
|
|
331
339
|
|
|
332
340
|
/**
|
|
333
341
|
* @param {LibIdentOptions} options options
|
|
334
|
-
* @returns {
|
|
342
|
+
* @returns {LibIdent | null} an identifier for library inclusion
|
|
335
343
|
*/
|
|
336
344
|
libIdent(options) {
|
|
337
345
|
let identifier;
|
|
@@ -352,7 +360,7 @@ class ContextModule extends Module {
|
|
|
352
360
|
identifier = "false";
|
|
353
361
|
} else {
|
|
354
362
|
identifier = this.options.resource
|
|
355
|
-
.map(res =>
|
|
363
|
+
.map((res) =>
|
|
356
364
|
contextify(options.context, res, options.associatedObjectForCache)
|
|
357
365
|
)
|
|
358
366
|
.join(" ");
|
|
@@ -383,7 +391,7 @@ class ContextModule extends Module {
|
|
|
383
391
|
}
|
|
384
392
|
if (this.options.referencedExports) {
|
|
385
393
|
identifier += ` referencedExports: ${this.options.referencedExports
|
|
386
|
-
.map(e => e.join("."))
|
|
394
|
+
.map((e) => e.join("."))
|
|
387
395
|
.join(", ")}`;
|
|
388
396
|
}
|
|
389
397
|
|
|
@@ -399,7 +407,7 @@ class ContextModule extends Module {
|
|
|
399
407
|
|
|
400
408
|
/**
|
|
401
409
|
* @param {NeedBuildContext} context context info
|
|
402
|
-
* @param {
|
|
410
|
+
* @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
|
|
403
411
|
* @returns {void}
|
|
404
412
|
*/
|
|
405
413
|
needBuild({ fileSystemInfo }, callback) {
|
|
@@ -409,8 +417,9 @@ class ContextModule extends Module {
|
|
|
409
417
|
const buildInfo = /** @type {BuildInfo} */ (this.buildInfo);
|
|
410
418
|
|
|
411
419
|
// always build when we have no snapshot and context
|
|
412
|
-
if (!buildInfo.snapshot)
|
|
420
|
+
if (!buildInfo.snapshot) {
|
|
413
421
|
return callback(null, Boolean(this.context || this.options.resource));
|
|
422
|
+
}
|
|
414
423
|
|
|
415
424
|
fileSystemInfo.checkSnapshotValid(buildInfo.snapshot, (err, valid) => {
|
|
416
425
|
callback(err, !valid);
|
|
@@ -422,7 +431,7 @@ class ContextModule extends Module {
|
|
|
422
431
|
* @param {Compilation} compilation the compilation
|
|
423
432
|
* @param {ResolverWithOptions} resolver the resolver
|
|
424
433
|
* @param {InputFileSystem} fs the file system
|
|
425
|
-
* @param {
|
|
434
|
+
* @param {BuildCallback} callback callback function
|
|
426
435
|
* @returns {void}
|
|
427
436
|
*/
|
|
428
437
|
build(options, compilation, resolver, fs, callback) {
|
|
@@ -462,7 +471,7 @@ class ContextModule extends Module {
|
|
|
462
471
|
}
|
|
463
472
|
dependencies.sort(
|
|
464
473
|
concatComparators(
|
|
465
|
-
compareSelect(a => a.loc, compareLocations),
|
|
474
|
+
compareSelect((a) => a.loc, compareLocations),
|
|
466
475
|
keepOriginalOrder(this.dependencies)
|
|
467
476
|
)
|
|
468
477
|
);
|
|
@@ -528,6 +537,8 @@ class ContextModule extends Module {
|
|
|
528
537
|
}
|
|
529
538
|
if (!this.context && !this.options.resource) return callback();
|
|
530
539
|
|
|
540
|
+
const snapshotOptions = compilation.options.snapshot.contextModule;
|
|
541
|
+
|
|
531
542
|
compilation.fileSystemInfo.createSnapshot(
|
|
532
543
|
startTime,
|
|
533
544
|
null,
|
|
@@ -537,7 +548,7 @@ class ContextModule extends Module {
|
|
|
537
548
|
? [this.options.resource]
|
|
538
549
|
: /** @type {string[]} */ (this.options.resource),
|
|
539
550
|
null,
|
|
540
|
-
|
|
551
|
+
snapshotOptions,
|
|
541
552
|
(err, snapshot) => {
|
|
542
553
|
if (err) return callback(err);
|
|
543
554
|
/** @type {BuildInfo} */
|
|
@@ -549,10 +560,10 @@ class ContextModule extends Module {
|
|
|
549
560
|
}
|
|
550
561
|
|
|
551
562
|
/**
|
|
552
|
-
* @param {
|
|
553
|
-
* @param {
|
|
554
|
-
* @param {
|
|
555
|
-
* @param {
|
|
563
|
+
* @param {FileSystemDependencies} fileDependencies set where file dependencies are added to
|
|
564
|
+
* @param {FileSystemDependencies} contextDependencies set where context dependencies are added to
|
|
565
|
+
* @param {FileSystemDependencies} missingDependencies set where missing dependencies are added to
|
|
566
|
+
* @param {FileSystemDependencies} buildDependencies set where build dependencies are added to
|
|
556
567
|
*/
|
|
557
568
|
addCacheDependencies(
|
|
558
569
|
fileDependencies,
|
|
@@ -574,7 +585,7 @@ class ContextModule extends Module {
|
|
|
574
585
|
/**
|
|
575
586
|
* @param {Dependency[]} dependencies all dependencies
|
|
576
587
|
* @param {ChunkGraph} chunkGraph chunk graph
|
|
577
|
-
* @returns {Map<string,
|
|
588
|
+
* @returns {Map<string, ModuleId>} map with user requests
|
|
578
589
|
*/
|
|
579
590
|
getUserRequestMap(dependencies, chunkGraph) {
|
|
580
591
|
const moduleGraph = chunkGraph.moduleGraph;
|
|
@@ -584,7 +595,7 @@ class ContextModule extends Module {
|
|
|
584
595
|
const sortedDependencies =
|
|
585
596
|
/** @type {ContextElementDependency[]} */
|
|
586
597
|
(dependencies)
|
|
587
|
-
.filter(dependency => moduleGraph.getModule(dependency))
|
|
598
|
+
.filter((dependency) => moduleGraph.getModule(dependency))
|
|
588
599
|
.sort((a, b) => {
|
|
589
600
|
if (a.userRequest === b.userRequest) {
|
|
590
601
|
return 0;
|
|
@@ -617,7 +628,8 @@ class ContextModule extends Module {
|
|
|
617
628
|
// therefore the order of this is !important!
|
|
618
629
|
const sortedModules = dependencies
|
|
619
630
|
.map(
|
|
620
|
-
dependency =>
|
|
631
|
+
(dependency) =>
|
|
632
|
+
/** @type {Module} */ (moduleGraph.getModule(dependency))
|
|
621
633
|
)
|
|
622
634
|
.filter(Boolean)
|
|
623
635
|
.sort(comparator);
|
|
@@ -941,7 +953,7 @@ module.exports = webpackAsyncContext;`;
|
|
|
941
953
|
let hasMultipleOrNoChunks = false;
|
|
942
954
|
let hasNoChunk = true;
|
|
943
955
|
const fakeMap = this.getFakeMap(
|
|
944
|
-
blocks.map(b => b.dependencies[0]),
|
|
956
|
+
blocks.map((b) => b.dependencies[0]),
|
|
945
957
|
chunkGraph
|
|
946
958
|
);
|
|
947
959
|
const hasFakeMap = typeof fakeMap === "object";
|
|
@@ -950,7 +962,7 @@ module.exports = webpackAsyncContext;`;
|
|
|
950
962
|
* @type {Item[]}
|
|
951
963
|
*/
|
|
952
964
|
const items = blocks
|
|
953
|
-
.map(block => {
|
|
965
|
+
.map((block) => {
|
|
954
966
|
const dependency =
|
|
955
967
|
/** @type {ContextElementDependency} */
|
|
956
968
|
(block.dependencies[0]);
|
|
@@ -962,7 +974,7 @@ module.exports = webpackAsyncContext;`;
|
|
|
962
974
|
chunks: undefined
|
|
963
975
|
};
|
|
964
976
|
})
|
|
965
|
-
.filter(item => item.module);
|
|
977
|
+
.filter((item) => item.module);
|
|
966
978
|
for (const item of items) {
|
|
967
979
|
const chunkGroup = chunkGraph.getBlockChunkGroup(item.block);
|
|
968
980
|
const chunks = (chunkGroup && chunkGroup.chunks) || [];
|
|
@@ -993,10 +1005,11 @@ module.exports = webpackAsyncContext;`;
|
|
|
993
1005
|
if (hasFakeMap) {
|
|
994
1006
|
arrayStart.push(fakeMap[moduleId]);
|
|
995
1007
|
}
|
|
996
|
-
map[item.userRequest] =
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1008
|
+
map[item.userRequest] = [
|
|
1009
|
+
...arrayStart,
|
|
1010
|
+
.../** @type {Chunk[]} */
|
|
1011
|
+
(item.chunks).map((chunk) => /** @type {ChunkId} */ (chunk.id))
|
|
1012
|
+
];
|
|
1000
1013
|
}
|
|
1001
1014
|
}
|
|
1002
1015
|
|
|
@@ -1174,7 +1187,7 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
|
1174
1187
|
const { chunkGraph, compilation } = context;
|
|
1175
1188
|
const sources = new Map();
|
|
1176
1189
|
sources.set(
|
|
1177
|
-
|
|
1190
|
+
JAVASCRIPT_TYPE,
|
|
1178
1191
|
this.getSource(
|
|
1179
1192
|
this.getSourceString(this.options.mode, context),
|
|
1180
1193
|
compilation
|
|
@@ -1183,11 +1196,13 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
|
1183
1196
|
const set = new Set();
|
|
1184
1197
|
const allDeps =
|
|
1185
1198
|
this.dependencies.length > 0
|
|
1186
|
-
? /** @type {ContextElementDependency[]} */
|
|
1199
|
+
? /** @type {ContextElementDependency[]} */ [...this.dependencies]
|
|
1187
1200
|
: [];
|
|
1188
|
-
for (const block of this.blocks)
|
|
1189
|
-
for (const dep of block.dependencies)
|
|
1201
|
+
for (const block of this.blocks) {
|
|
1202
|
+
for (const dep of block.dependencies) {
|
|
1190
1203
|
allDeps.push(/** @type {ContextElementDependency} */ (dep));
|
|
1204
|
+
}
|
|
1205
|
+
}
|
|
1191
1206
|
set.add(RuntimeGlobals.module);
|
|
1192
1207
|
set.add(RuntimeGlobals.hasOwnProperty);
|
|
1193
1208
|
if (allDeps.length > 0) {
|
|
@@ -15,14 +15,16 @@ const { cachedSetProperty } = require("./util/cleverMerge");
|
|
|
15
15
|
const { createFakeHook } = require("./util/deprecation");
|
|
16
16
|
const { join } = require("./util/fs");
|
|
17
17
|
|
|
18
|
+
/** @typedef {import("enhanced-resolve").ResolveRequest} ResolveRequest */
|
|
19
|
+
/** @typedef {import("./Compilation").FileSystemDependencies} FileSystemDependencies */
|
|
18
20
|
/** @typedef {import("./ContextModule").ContextModuleOptions} ContextModuleOptions */
|
|
19
21
|
/** @typedef {import("./ContextModule").ResolveDependenciesCallback} ResolveDependenciesCallback */
|
|
20
|
-
/** @typedef {import("./Module")} Module */
|
|
21
22
|
/** @typedef {import("./ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
|
|
22
|
-
/** @typedef {import("./ModuleFactory").
|
|
23
|
+
/** @typedef {import("./ModuleFactory").ModuleFactoryCallback} ModuleFactoryCallback */
|
|
23
24
|
/** @typedef {import("./ResolverFactory")} ResolverFactory */
|
|
24
25
|
/** @typedef {import("./dependencies/ContextDependency")} ContextDependency */
|
|
25
|
-
/** @typedef {import("
|
|
26
|
+
/** @typedef {import("./dependencies/ContextDependency").ContextOptions} ContextOptions */
|
|
27
|
+
|
|
26
28
|
/**
|
|
27
29
|
* @template T
|
|
28
30
|
* @typedef {import("./util/deprecation").FakeHook<T>} FakeHook<T>
|
|
@@ -31,9 +33,23 @@ const { join } = require("./util/fs");
|
|
|
31
33
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
|
32
34
|
/** @typedef {{ context: string, request: string }} ContextAlternativeRequest */
|
|
33
35
|
|
|
36
|
+
/**
|
|
37
|
+
* @typedef {object} ContextResolveData
|
|
38
|
+
* @property {string} context
|
|
39
|
+
* @property {string} request
|
|
40
|
+
* @property {ModuleFactoryCreateData["resolveOptions"]} resolveOptions
|
|
41
|
+
* @property {FileSystemDependencies} fileDependencies
|
|
42
|
+
* @property {FileSystemDependencies} missingDependencies
|
|
43
|
+
* @property {FileSystemDependencies} contextDependencies
|
|
44
|
+
* @property {ContextDependency[]} dependencies
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
/** @typedef {ContextResolveData & ContextOptions} BeforeContextResolveData */
|
|
48
|
+
/** @typedef {BeforeContextResolveData & { resource: string | string[], resourceQuery: string | undefined, resourceFragment: string | undefined, resolveDependencies: ContextModuleFactory["resolveDependencies"] }} AfterContextResolveData */
|
|
49
|
+
|
|
34
50
|
const EMPTY_RESOLVE_OPTIONS = {};
|
|
35
51
|
|
|
36
|
-
|
|
52
|
+
class ContextModuleFactory extends ModuleFactory {
|
|
37
53
|
/**
|
|
38
54
|
* @param {ResolverFactory} resolverFactory resolverFactory
|
|
39
55
|
*/
|
|
@@ -45,9 +61,9 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
45
61
|
"options"
|
|
46
62
|
]);
|
|
47
63
|
this.hooks = Object.freeze({
|
|
48
|
-
/** @type {AsyncSeriesWaterfallHook<[
|
|
64
|
+
/** @type {AsyncSeriesWaterfallHook<[BeforeContextResolveData], BeforeContextResolveData | false | void>} */
|
|
49
65
|
beforeResolve: new AsyncSeriesWaterfallHook(["data"]),
|
|
50
|
-
/** @type {AsyncSeriesWaterfallHook<[
|
|
66
|
+
/** @type {AsyncSeriesWaterfallHook<[AfterContextResolveData], AfterContextResolveData | false | void>} */
|
|
51
67
|
afterResolve: new AsyncSeriesWaterfallHook(["data"]),
|
|
52
68
|
/** @type {SyncWaterfallHook<[string[]]>} */
|
|
53
69
|
contextModuleFiles: new SyncWaterfallHook(["files"]),
|
|
@@ -56,7 +72,7 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
56
72
|
{
|
|
57
73
|
name: "alternatives",
|
|
58
74
|
/** @type {AsyncSeriesWaterfallHook<[ContextAlternativeRequest[]]>["intercept"]} */
|
|
59
|
-
intercept: interceptor => {
|
|
75
|
+
intercept: (interceptor) => {
|
|
60
76
|
throw new Error(
|
|
61
77
|
"Intercepting fake hook ContextModuleFactory.hooks.alternatives is not possible, use ContextModuleFactory.hooks.alternativeRequests instead"
|
|
62
78
|
);
|
|
@@ -86,14 +102,14 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
86
102
|
|
|
87
103
|
/**
|
|
88
104
|
* @param {ModuleFactoryCreateData} data data object
|
|
89
|
-
* @param {
|
|
105
|
+
* @param {ModuleFactoryCallback} callback callback
|
|
90
106
|
* @returns {void}
|
|
91
107
|
*/
|
|
92
108
|
create(data, callback) {
|
|
93
109
|
const context = data.context;
|
|
94
|
-
const dependencies = data.dependencies;
|
|
110
|
+
const dependencies = /** @type {ContextDependency[]} */ (data.dependencies);
|
|
95
111
|
const resolveOptions = data.resolveOptions;
|
|
96
|
-
const dependency =
|
|
112
|
+
const dependency = dependencies[0];
|
|
97
113
|
const fileDependencies = new LazySet();
|
|
98
114
|
const missingDependencies = new LazySet();
|
|
99
115
|
const contextDependencies = new LazySet();
|
|
@@ -130,7 +146,9 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
130
146
|
const request = beforeResolveResult.request;
|
|
131
147
|
const resolveOptions = beforeResolveResult.resolveOptions;
|
|
132
148
|
|
|
149
|
+
/** @type {undefined | string[]} */
|
|
133
150
|
let loaders;
|
|
151
|
+
/** @type {undefined | string} */
|
|
134
152
|
let resource;
|
|
135
153
|
let loadersPrefix = "";
|
|
136
154
|
const idx = request.lastIndexOf("!");
|
|
@@ -169,13 +187,13 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
169
187
|
|
|
170
188
|
asyncLib.parallel(
|
|
171
189
|
[
|
|
172
|
-
callback => {
|
|
173
|
-
const results = /** @type ResolveRequest[] */ ([]);
|
|
190
|
+
(callback) => {
|
|
191
|
+
const results = /** @type {ResolveRequest[]} */ ([]);
|
|
174
192
|
/**
|
|
175
193
|
* @param {ResolveRequest} obj obj
|
|
176
194
|
* @returns {void}
|
|
177
195
|
*/
|
|
178
|
-
const yield_ = obj => {
|
|
196
|
+
const yield_ = (obj) => {
|
|
179
197
|
results.push(obj);
|
|
180
198
|
};
|
|
181
199
|
|
|
@@ -189,13 +207,13 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
189
207
|
contextDependencies,
|
|
190
208
|
yield: yield_
|
|
191
209
|
},
|
|
192
|
-
err => {
|
|
210
|
+
(err) => {
|
|
193
211
|
if (err) return callback(err);
|
|
194
212
|
callback(null, results);
|
|
195
213
|
}
|
|
196
214
|
);
|
|
197
215
|
},
|
|
198
|
-
callback => {
|
|
216
|
+
(callback) => {
|
|
199
217
|
asyncLib.map(
|
|
200
218
|
loaders,
|
|
201
219
|
(loader, callback) => {
|
|
@@ -210,7 +228,7 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
210
228
|
},
|
|
211
229
|
(err, result) => {
|
|
212
230
|
if (err) return callback(err);
|
|
213
|
-
callback(null,
|
|
231
|
+
callback(null, result);
|
|
214
232
|
}
|
|
215
233
|
);
|
|
216
234
|
},
|
|
@@ -230,7 +248,7 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
230
248
|
/** @type {[ResolveRequest[], string[]]} */ (result);
|
|
231
249
|
if (contextResult.length > 1) {
|
|
232
250
|
const first = contextResult[0];
|
|
233
|
-
contextResult = contextResult.filter(r => r.path);
|
|
251
|
+
contextResult = contextResult.filter((r) => r.path);
|
|
234
252
|
if (contextResult.length === 0) contextResult.push(first);
|
|
235
253
|
}
|
|
236
254
|
this.hooks.afterResolve.callAsync(
|
|
@@ -241,8 +259,8 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
241
259
|
(loaderResult.length > 0 ? "!" : ""),
|
|
242
260
|
resource:
|
|
243
261
|
contextResult.length > 1
|
|
244
|
-
? contextResult.map(r => r.path)
|
|
245
|
-
: contextResult[0].path,
|
|
262
|
+
? /** @type {string[]} */ (contextResult.map((r) => r.path))
|
|
263
|
+
: /** @type {string} */ (contextResult[0].path),
|
|
246
264
|
resolveDependencies: this.resolveDependencies.bind(this),
|
|
247
265
|
resourceQuery: contextResult[0].query,
|
|
248
266
|
resourceFragment: contextResult[0].fragment,
|
|
@@ -335,23 +353,25 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
335
353
|
/**
|
|
336
354
|
* @param {string} ctx context
|
|
337
355
|
* @param {string} directory directory
|
|
338
|
-
* @param {
|
|
356
|
+
* @param {(context: string, subResource: string, callback: () => void) => void} addSubDirectory addSubDirectoryFn
|
|
339
357
|
* @param {ResolveDependenciesCallback} callback callback
|
|
358
|
+
* @returns {void}
|
|
340
359
|
*/
|
|
341
360
|
const addDirectory = (ctx, directory, addSubDirectory, callback) => {
|
|
342
361
|
fs.readdir(directory, (err, files) => {
|
|
343
362
|
if (err) return callback(err);
|
|
344
363
|
const processedFiles = cmf.hooks.contextModuleFiles.call(
|
|
345
|
-
/** @type {string[]} */ (files).map(file => file.normalize("NFC"))
|
|
364
|
+
/** @type {string[]} */ (files).map((file) => file.normalize("NFC"))
|
|
346
365
|
);
|
|
347
|
-
if (!processedFiles || processedFiles.length === 0)
|
|
366
|
+
if (!processedFiles || processedFiles.length === 0) {
|
|
348
367
|
return callback(null, []);
|
|
368
|
+
}
|
|
349
369
|
asyncLib.map(
|
|
350
|
-
processedFiles.filter(p => p.indexOf(".") !== 0),
|
|
370
|
+
processedFiles.filter((p) => p.indexOf(".") !== 0),
|
|
351
371
|
(segment, callback) => {
|
|
352
372
|
const subResource = join(fs, directory, segment);
|
|
353
373
|
|
|
354
|
-
if (!exclude || !
|
|
374
|
+
if (!exclude || !exclude.test(subResource)) {
|
|
355
375
|
fs.stat(subResource, (err, _stat) => {
|
|
356
376
|
if (err) {
|
|
357
377
|
if (err.code === "ENOENT") {
|
|
@@ -369,7 +389,7 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
369
389
|
addSubDirectory(ctx, subResource, callback);
|
|
370
390
|
} else if (
|
|
371
391
|
stat.isFile() &&
|
|
372
|
-
(!include ||
|
|
392
|
+
(!include || include.test(subResource))
|
|
373
393
|
) {
|
|
374
394
|
/** @type {{ context: string, request: string }} */
|
|
375
395
|
const obj = {
|
|
@@ -386,10 +406,10 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
386
406
|
null,
|
|
387
407
|
/** @type {ContextAlternativeRequest[]} */
|
|
388
408
|
(alternatives)
|
|
389
|
-
.filter(obj =>
|
|
409
|
+
.filter((obj) =>
|
|
390
410
|
regExp.test(/** @type {string} */ (obj.request))
|
|
391
411
|
)
|
|
392
|
-
.map(obj => {
|
|
412
|
+
.map((obj) => {
|
|
393
413
|
const dep = new ContextElementDependency(
|
|
394
414
|
`${obj.request}${resourceQuery}${resourceFragment}`,
|
|
395
415
|
obj.request,
|
|
@@ -397,8 +417,7 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
397
417
|
/** @type {string} */
|
|
398
418
|
(category),
|
|
399
419
|
referencedExports,
|
|
400
|
-
|
|
401
|
-
(obj.context),
|
|
420
|
+
obj.context,
|
|
402
421
|
attributes
|
|
403
422
|
);
|
|
404
423
|
dep.optional = true;
|
|
@@ -478,4 +497,6 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
|
|
|
478
497
|
});
|
|
479
498
|
}
|
|
480
499
|
}
|
|
481
|
-
}
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
module.exports = ContextModuleFactory;
|