@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.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 +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -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 +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Tobias Koppers @sokra
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const { pathToFileURL } = require("url");
|
|
9
|
+
const LoaderLoadingError = require("../errors/LoaderLoadingError");
|
|
10
|
+
|
|
11
|
+
/** @typedef {import("./LoaderRunner").LoaderObject} LoaderObject */
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Lazily-compiled dynamic `import()`. Built on first use so this file still
|
|
15
|
+
* parses on Node versions without native `import()` (<13.2), then reused.
|
|
16
|
+
* @type {((url: URL) => Promise<EXPECTED_ANY>) | undefined}
|
|
17
|
+
*/
|
|
18
|
+
let importModule;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @param {LoaderObject} loader the loader to load into
|
|
22
|
+
* @param {EXPECTED_ANY} module the loaded module
|
|
23
|
+
* @param {(err?: Error) => void} callback callback
|
|
24
|
+
* @returns {void}
|
|
25
|
+
*/
|
|
26
|
+
function handleResult(loader, module, callback) {
|
|
27
|
+
if (typeof module !== "function" && typeof module !== "object") {
|
|
28
|
+
return callback(
|
|
29
|
+
new LoaderLoadingError(
|
|
30
|
+
`Module '${loader.path}' is not a loader (export function or es6 module)`
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
loader.normal = typeof module === "function" ? module : module.default;
|
|
36
|
+
loader.pitch = module.pitch;
|
|
37
|
+
loader.raw = module.raw;
|
|
38
|
+
|
|
39
|
+
if (
|
|
40
|
+
typeof loader.normal !== "function" &&
|
|
41
|
+
typeof loader.pitch !== "function"
|
|
42
|
+
) {
|
|
43
|
+
return callback(
|
|
44
|
+
new LoaderLoadingError(
|
|
45
|
+
`Module '${loader.path}' is not a loader (must have normal or pitch function)`
|
|
46
|
+
)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
callback();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @param {LoaderObject} loader the loader to load
|
|
54
|
+
* @param {(err?: Error) => void} callback callback
|
|
55
|
+
* @returns {void}
|
|
56
|
+
*/
|
|
57
|
+
function loadLoader(loader, callback) {
|
|
58
|
+
if (loader.type === "module") {
|
|
59
|
+
try {
|
|
60
|
+
if (importModule === undefined) {
|
|
61
|
+
// `eval` defers parsing `import()` to runtime, so this file stays
|
|
62
|
+
// loadable on Node versions that can't parse it (<13.2).
|
|
63
|
+
// eslint-disable-next-line no-eval
|
|
64
|
+
const dynamicImport = eval("(url) => import(url)");
|
|
65
|
+
importModule = /** @type {(url: URL) => Promise<EXPECTED_ANY>} */ (
|
|
66
|
+
dynamicImport
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
importModule(pathToFileURL(loader.path)).then(
|
|
71
|
+
(/** @type {EXPECTED_ANY} */ module) => {
|
|
72
|
+
handleResult(loader, module, callback);
|
|
73
|
+
},
|
|
74
|
+
callback
|
|
75
|
+
);
|
|
76
|
+
} catch (err) {
|
|
77
|
+
callback(/** @type {Error} */ (err));
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
let loadedModule;
|
|
83
|
+
try {
|
|
84
|
+
loadedModule = require(loader.path);
|
|
85
|
+
} catch (err) {
|
|
86
|
+
// node can choke on require when the FD limit is hit; defer to recover.
|
|
87
|
+
if (
|
|
88
|
+
err instanceof Error &&
|
|
89
|
+
/** @type {NodeJS.ErrnoException} */ (err).code === "EMFILE"
|
|
90
|
+
) {
|
|
91
|
+
setImmediate(loadLoader, loader, callback);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
return callback(/** @type {Error} */ (err));
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return handleResult(loader, loadedModule, callback);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
module.exports = loadLoader;
|
package/lib/logging/Logger.js
CHANGED
|
@@ -42,6 +42,7 @@ const TIMERS_AGGREGATES_SYMBOL = Symbol("webpack logger aggregated times");
|
|
|
42
42
|
|
|
43
43
|
class WebpackLogger {
|
|
44
44
|
/**
|
|
45
|
+
* Creates an instance of WebpackLogger.
|
|
45
46
|
* @param {LogFn} log log function
|
|
46
47
|
* @param {GetChildLogger} getChildLogger function to create child logger
|
|
47
48
|
*/
|
|
@@ -53,6 +54,7 @@ class WebpackLogger {
|
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
/**
|
|
57
|
+
* Processes the provided arg.
|
|
56
58
|
* @param {Args} args args
|
|
57
59
|
*/
|
|
58
60
|
error(...args) {
|
|
@@ -60,6 +62,7 @@ class WebpackLogger {
|
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
/**
|
|
65
|
+
* Processes the provided arg.
|
|
63
66
|
* @param {Args} args args
|
|
64
67
|
*/
|
|
65
68
|
warn(...args) {
|
|
@@ -67,6 +70,7 @@ class WebpackLogger {
|
|
|
67
70
|
}
|
|
68
71
|
|
|
69
72
|
/**
|
|
73
|
+
* Processes the provided arg.
|
|
70
74
|
* @param {Args} args args
|
|
71
75
|
*/
|
|
72
76
|
info(...args) {
|
|
@@ -74,6 +78,7 @@ class WebpackLogger {
|
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
/**
|
|
81
|
+
* Processes the provided arg.
|
|
77
82
|
* @param {Args} args args
|
|
78
83
|
*/
|
|
79
84
|
log(...args) {
|
|
@@ -81,6 +86,7 @@ class WebpackLogger {
|
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
/**
|
|
89
|
+
* Processes the provided arg.
|
|
84
90
|
* @param {Args} args args
|
|
85
91
|
*/
|
|
86
92
|
debug(...args) {
|
|
@@ -88,6 +94,7 @@ class WebpackLogger {
|
|
|
88
94
|
}
|
|
89
95
|
|
|
90
96
|
/**
|
|
97
|
+
* Processes the provided condition.
|
|
91
98
|
* @param {boolean=} condition condition
|
|
92
99
|
* @param {Args} args args
|
|
93
100
|
*/
|
|
@@ -106,6 +113,7 @@ class WebpackLogger {
|
|
|
106
113
|
}
|
|
107
114
|
|
|
108
115
|
/**
|
|
116
|
+
* Processes the provided arg.
|
|
109
117
|
* @param {Args} args args
|
|
110
118
|
*/
|
|
111
119
|
status(...args) {
|
|
@@ -113,6 +121,7 @@ class WebpackLogger {
|
|
|
113
121
|
}
|
|
114
122
|
|
|
115
123
|
/**
|
|
124
|
+
* Processes the provided arg.
|
|
116
125
|
* @param {Args} args args
|
|
117
126
|
*/
|
|
118
127
|
group(...args) {
|
|
@@ -120,6 +129,7 @@ class WebpackLogger {
|
|
|
120
129
|
}
|
|
121
130
|
|
|
122
131
|
/**
|
|
132
|
+
* Processes the provided arg.
|
|
123
133
|
* @param {Args} args args
|
|
124
134
|
*/
|
|
125
135
|
groupCollapsed(...args) {
|
|
@@ -131,6 +141,7 @@ class WebpackLogger {
|
|
|
131
141
|
}
|
|
132
142
|
|
|
133
143
|
/**
|
|
144
|
+
* Processes the provided label.
|
|
134
145
|
* @param {string=} label label
|
|
135
146
|
*/
|
|
136
147
|
profile(label) {
|
|
@@ -138,6 +149,7 @@ class WebpackLogger {
|
|
|
138
149
|
}
|
|
139
150
|
|
|
140
151
|
/**
|
|
152
|
+
* Processes the provided label.
|
|
141
153
|
* @param {string=} label label
|
|
142
154
|
*/
|
|
143
155
|
profileEnd(label) {
|
|
@@ -145,6 +157,7 @@ class WebpackLogger {
|
|
|
145
157
|
}
|
|
146
158
|
|
|
147
159
|
/**
|
|
160
|
+
* Processes the provided label.
|
|
148
161
|
* @param {string} label label
|
|
149
162
|
*/
|
|
150
163
|
time(label) {
|
|
@@ -154,6 +167,7 @@ class WebpackLogger {
|
|
|
154
167
|
}
|
|
155
168
|
|
|
156
169
|
/**
|
|
170
|
+
* Processes the provided label.
|
|
157
171
|
* @param {string=} label label
|
|
158
172
|
*/
|
|
159
173
|
timeLog(label) {
|
|
@@ -166,6 +180,7 @@ class WebpackLogger {
|
|
|
166
180
|
}
|
|
167
181
|
|
|
168
182
|
/**
|
|
183
|
+
* Processes the provided label.
|
|
169
184
|
* @param {string=} label label
|
|
170
185
|
*/
|
|
171
186
|
timeEnd(label) {
|
|
@@ -180,6 +195,7 @@ class WebpackLogger {
|
|
|
180
195
|
}
|
|
181
196
|
|
|
182
197
|
/**
|
|
198
|
+
* Processes the provided label.
|
|
183
199
|
* @param {string=} label label
|
|
184
200
|
*/
|
|
185
201
|
timeAggregate(label) {
|
|
@@ -209,6 +225,7 @@ class WebpackLogger {
|
|
|
209
225
|
}
|
|
210
226
|
|
|
211
227
|
/**
|
|
228
|
+
* Time aggregate end.
|
|
212
229
|
* @param {string=} label label
|
|
213
230
|
*/
|
|
214
231
|
timeAggregateEnd(label) {
|
|
@@ -16,6 +16,7 @@ const { LogType } = require("./Logger");
|
|
|
16
16
|
/** @typedef {(value: string, type: LogTypeEnum, args?: Args) => void} LoggingFunction */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
+
* Defines the logger console type used by this module.
|
|
19
20
|
* @typedef {object} LoggerConsole
|
|
20
21
|
* @property {() => void} clear
|
|
21
22
|
* @property {() => void} trace
|
|
@@ -34,6 +35,7 @@ const { LogType } = require("./Logger");
|
|
|
34
35
|
*/
|
|
35
36
|
|
|
36
37
|
/**
|
|
38
|
+
* Defines the logger options type used by this module.
|
|
37
39
|
* @typedef {object} LoggerOptions
|
|
38
40
|
* @property {false | true | "none" | "error" | "warn" | "info" | "log" | "verbose"} level loglevel
|
|
39
41
|
* @property {FilterTypes | boolean} debug filter for debug logging
|
|
@@ -41,6 +43,7 @@ const { LogType } = require("./Logger");
|
|
|
41
43
|
*/
|
|
42
44
|
|
|
43
45
|
/**
|
|
46
|
+
* Filter to function.
|
|
44
47
|
* @param {FilterItemTypes} item an input item
|
|
45
48
|
* @returns {FilterFunction | undefined} filter function
|
|
46
49
|
*/
|
|
@@ -63,6 +66,7 @@ const filterToFunction = (item) => {
|
|
|
63
66
|
};
|
|
64
67
|
|
|
65
68
|
/**
|
|
69
|
+
* Enumerates the available values.
|
|
66
70
|
* @enum {number}
|
|
67
71
|
*/
|
|
68
72
|
const LogLevel = {
|
|
@@ -77,6 +81,7 @@ const LogLevel = {
|
|
|
77
81
|
};
|
|
78
82
|
|
|
79
83
|
/**
|
|
84
|
+
* Returns logging function.
|
|
80
85
|
* @param {LoggerOptions} options options object
|
|
81
86
|
* @returns {LoggingFunction} logging function
|
|
82
87
|
*/
|
|
@@ -93,6 +98,7 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
|
93
98
|
const loglevel = LogLevel[`${level}`] || 0;
|
|
94
99
|
|
|
95
100
|
/**
|
|
101
|
+
* Processes the provided name.
|
|
96
102
|
* @param {string} name name of the logger
|
|
97
103
|
* @param {LogTypeEnum} type type of the log entry
|
|
98
104
|
* @param {Args=} args arguments of the log entry
|
|
@@ -100,6 +106,7 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
|
100
106
|
*/
|
|
101
107
|
const logger = (name, type, args) => {
|
|
102
108
|
/**
|
|
109
|
+
* Returns labeled args.
|
|
103
110
|
* @template T
|
|
104
111
|
* @returns {[string?, ...T[]]} labeled args
|
|
105
112
|
*/
|
package/lib/logging/runtime.js
CHANGED
|
@@ -18,6 +18,7 @@ const currentDefaultLoggerOptions = {
|
|
|
18
18
|
let currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
+
* Processes the provided create console logger.logger option.
|
|
21
22
|
* @param {createConsoleLogger.LoggerOptions} options new options, merge with old options
|
|
22
23
|
* @returns {void}
|
|
23
24
|
*/
|
|
@@ -27,6 +28,7 @@ module.exports.configureDefaultLogger = (options) => {
|
|
|
27
28
|
};
|
|
28
29
|
|
|
29
30
|
/**
|
|
31
|
+
* Returns a logger.
|
|
30
32
|
* @param {string} name name of the logger
|
|
31
33
|
* @returns {Logger} a logger
|
|
32
34
|
*/
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Returns sum of all numbers in array.
|
|
9
10
|
* @param {number[]} array array of numbers
|
|
10
11
|
* @returns {number} sum of all numbers in array
|
|
11
12
|
*/
|
|
@@ -16,6 +17,7 @@ const arraySum = (array) => {
|
|
|
16
17
|
};
|
|
17
18
|
|
|
18
19
|
/**
|
|
20
|
+
* Returns truncated args.
|
|
19
21
|
* @param {string[]} args items to be truncated
|
|
20
22
|
* @param {number} maxLength maximum length of args including spaces between
|
|
21
23
|
* @returns {string[]} truncated args
|
|
@@ -13,6 +13,7 @@ const StartupChunkDependenciesPlugin = require("../runtime/StartupChunkDependenc
|
|
|
13
13
|
/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
+
* Defines the common js chunk loading plugin options type used by this module.
|
|
16
17
|
* @typedef {object} CommonJsChunkLoadingPluginOptions
|
|
17
18
|
* @property {boolean=} asyncChunkLoading enable async chunk loading
|
|
18
19
|
*/
|
|
@@ -21,6 +22,7 @@ const PLUGIN_NAME = "CommonJsChunkLoadingPlugin";
|
|
|
21
22
|
|
|
22
23
|
class CommonJsChunkLoadingPlugin {
|
|
23
24
|
/**
|
|
25
|
+
* Creates an instance of CommonJsChunkLoadingPlugin.
|
|
24
26
|
* @param {CommonJsChunkLoadingPluginOptions=} options options
|
|
25
27
|
*/
|
|
26
28
|
constructor(options = {}) {
|
|
@@ -29,7 +31,7 @@ class CommonJsChunkLoadingPlugin {
|
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
|
-
*
|
|
34
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
33
35
|
* @param {Compiler} compiler the compiler instance
|
|
34
36
|
* @returns {void}
|
|
35
37
|
*/
|
|
@@ -47,6 +49,7 @@ class CommonJsChunkLoadingPlugin {
|
|
|
47
49
|
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
|
|
48
50
|
const globalChunkLoading = compilation.outputOptions.chunkLoading;
|
|
49
51
|
/**
|
|
52
|
+
* Checks whether this common js chunk loading plugin is enabled for chunk.
|
|
50
53
|
* @param {Chunk} chunk chunk
|
|
51
54
|
* @returns {boolean} true, if wasm loading is enabled for the chunk
|
|
52
55
|
*/
|
|
@@ -61,6 +64,7 @@ class CommonJsChunkLoadingPlugin {
|
|
|
61
64
|
/** @type {WeakSet<Chunk>} */
|
|
62
65
|
const onceForChunkSet = new WeakSet();
|
|
63
66
|
/**
|
|
67
|
+
* Handles the hook callback for this code path.
|
|
64
68
|
* @param {Chunk} chunk chunk
|
|
65
69
|
* @param {RuntimeRequirements} set runtime requirements
|
|
66
70
|
*/
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const CachedInputFileSystem = require("enhanced-resolve")
|
|
8
|
+
const { CachedInputFileSystem } = require("enhanced-resolve");
|
|
9
9
|
const fs = require("graceful-fs");
|
|
10
10
|
const createConsoleLogger = require("../logging/createConsoleLogger");
|
|
11
11
|
const NodeWatchFileSystem = require("./NodeWatchFileSystem");
|
|
@@ -16,6 +16,7 @@ const nodeConsole = require("./nodeConsole");
|
|
|
16
16
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
+
* Defines the node environment plugin options type used by this module.
|
|
19
20
|
* @typedef {object} NodeEnvironmentPluginOptions
|
|
20
21
|
* @property {InfrastructureLogging} infrastructureLogging infrastructure logging options
|
|
21
22
|
*/
|
|
@@ -24,6 +25,7 @@ const PLUGIN_NAME = "NodeEnvironmentPlugin";
|
|
|
24
25
|
|
|
25
26
|
class NodeEnvironmentPlugin {
|
|
26
27
|
/**
|
|
28
|
+
* Creates an instance of NodeEnvironmentPlugin.
|
|
27
29
|
* @param {NodeEnvironmentPluginOptions} options options
|
|
28
30
|
*/
|
|
29
31
|
constructor(options) {
|
|
@@ -32,7 +34,7 @@ class NodeEnvironmentPlugin {
|
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
/**
|
|
35
|
-
*
|
|
37
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
36
38
|
* @param {Compiler} compiler the compiler instance
|
|
37
39
|
* @returns {void}
|
|
38
40
|
*/
|
|
@@ -48,9 +50,11 @@ class NodeEnvironmentPlugin {
|
|
|
48
50
|
appendOnly: infrastructureLogging.appendOnly,
|
|
49
51
|
stream:
|
|
50
52
|
/** @type {NodeJS.WritableStream} */
|
|
51
|
-
(infrastructureLogging.stream)
|
|
53
|
+
(infrastructureLogging.stream),
|
|
54
|
+
compiler
|
|
52
55
|
})
|
|
53
56
|
});
|
|
57
|
+
// @ts-expect-error need to fix on enhanced-resolve side
|
|
54
58
|
compiler.inputFileSystem = new CachedInputFileSystem(fs, 60000);
|
|
55
59
|
const inputFileSystem =
|
|
56
60
|
/** @type {InputFileSystem} */
|
|
@@ -6,74 +6,14 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const ExternalsPlugin = require("../ExternalsPlugin");
|
|
9
|
+
const { builtins } = require("./nodeBuiltins");
|
|
9
10
|
|
|
10
11
|
/** @typedef {import("../../declarations/WebpackOptions").ExternalsType} ExternalsType */
|
|
11
12
|
/** @typedef {import("../Compiler")} Compiler */
|
|
12
13
|
|
|
13
|
-
const builtins = [
|
|
14
|
-
"assert",
|
|
15
|
-
"assert/strict",
|
|
16
|
-
"async_hooks",
|
|
17
|
-
"buffer",
|
|
18
|
-
"child_process",
|
|
19
|
-
"cluster",
|
|
20
|
-
"console",
|
|
21
|
-
"constants",
|
|
22
|
-
"crypto",
|
|
23
|
-
"dgram",
|
|
24
|
-
"diagnostics_channel",
|
|
25
|
-
"dns",
|
|
26
|
-
"dns/promises",
|
|
27
|
-
"domain",
|
|
28
|
-
"events",
|
|
29
|
-
"fs",
|
|
30
|
-
"fs/promises",
|
|
31
|
-
"http",
|
|
32
|
-
"http2",
|
|
33
|
-
"https",
|
|
34
|
-
"inspector",
|
|
35
|
-
"inspector/promises",
|
|
36
|
-
"module",
|
|
37
|
-
"net",
|
|
38
|
-
"os",
|
|
39
|
-
"path",
|
|
40
|
-
"path/posix",
|
|
41
|
-
"path/win32",
|
|
42
|
-
"perf_hooks",
|
|
43
|
-
"process",
|
|
44
|
-
"punycode",
|
|
45
|
-
"querystring",
|
|
46
|
-
"readline",
|
|
47
|
-
"readline/promises",
|
|
48
|
-
"repl",
|
|
49
|
-
"stream",
|
|
50
|
-
"stream/consumers",
|
|
51
|
-
"stream/promises",
|
|
52
|
-
"stream/web",
|
|
53
|
-
"string_decoder",
|
|
54
|
-
"sys",
|
|
55
|
-
"timers",
|
|
56
|
-
"timers/promises",
|
|
57
|
-
"tls",
|
|
58
|
-
"trace_events",
|
|
59
|
-
"tty",
|
|
60
|
-
"url",
|
|
61
|
-
"util",
|
|
62
|
-
"util/types",
|
|
63
|
-
"v8",
|
|
64
|
-
"vm",
|
|
65
|
-
"wasi",
|
|
66
|
-
"worker_threads",
|
|
67
|
-
"zlib",
|
|
68
|
-
/^node:/,
|
|
69
|
-
|
|
70
|
-
// cspell:word pnpapi
|
|
71
|
-
// Yarn PnP adds pnpapi as "builtin"
|
|
72
|
-
"pnpapi"
|
|
73
|
-
];
|
|
74
|
-
|
|
75
14
|
class NodeTargetPlugin {
|
|
76
15
|
/**
|
|
16
|
+
* Creates an instance of NodeTargetPlugin.
|
|
77
17
|
* @param {ExternalsType} type default external type
|
|
78
18
|
*/
|
|
79
19
|
constructor(type = "node-commonjs") {
|
|
@@ -82,7 +22,7 @@ class NodeTargetPlugin {
|
|
|
82
22
|
}
|
|
83
23
|
|
|
84
24
|
/**
|
|
85
|
-
*
|
|
25
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
86
26
|
* @param {Compiler} compiler the compiler instance
|
|
87
27
|
* @returns {void}
|
|
88
28
|
*/
|
|
@@ -100,3 +40,4 @@ class NodeTargetPlugin {
|
|
|
100
40
|
}
|
|
101
41
|
|
|
102
42
|
module.exports = NodeTargetPlugin;
|
|
43
|
+
module.exports.builtins = builtins;
|
|
@@ -11,12 +11,14 @@ const EnableChunkLoadingPlugin = require("../javascript/EnableChunkLoadingPlugin
|
|
|
11
11
|
/** @typedef {import("../Compiler")} Compiler */
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
+
* Represents the node template plugin runtime component.
|
|
14
15
|
* @typedef {object} NodeTemplatePluginOptions
|
|
15
16
|
* @property {boolean=} asyncChunkLoading enable async chunk loading
|
|
16
17
|
*/
|
|
17
18
|
|
|
18
19
|
class NodeTemplatePlugin {
|
|
19
20
|
/**
|
|
21
|
+
* Creates an instance of NodeTemplatePlugin.
|
|
20
22
|
* @param {NodeTemplatePluginOptions=} options options object
|
|
21
23
|
*/
|
|
22
24
|
constructor(options = {}) {
|
|
@@ -25,7 +27,7 @@ class NodeTemplatePlugin {
|
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
/**
|
|
28
|
-
*
|
|
30
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
29
31
|
* @param {Compiler} compiler the compiler instance
|
|
30
32
|
* @returns {void}
|
|
31
33
|
*/
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
const util = require("util");
|
|
9
9
|
const Watchpack = require("watchpack");
|
|
10
10
|
|
|
11
|
+
/** @typedef {InstanceType<import("watchpack")>} Watchpack */
|
|
11
12
|
/** @typedef {import("watchpack").TimeInfoEntries} TimeInfoEntries */
|
|
12
13
|
/** @typedef {import("watchpack").WatchOptions} WatchOptions */
|
|
13
14
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
|
@@ -17,6 +18,7 @@ const Watchpack = require("watchpack");
|
|
|
17
18
|
|
|
18
19
|
class NodeWatchFileSystem {
|
|
19
20
|
/**
|
|
21
|
+
* Creates an instance of NodeWatchFileSystem.
|
|
20
22
|
* @param {InputFileSystem} inputFileSystem input filesystem
|
|
21
23
|
*/
|
|
22
24
|
constructor(inputFileSystem) {
|
|
@@ -81,9 +83,45 @@ class NodeWatchFileSystem {
|
|
|
81
83
|
}
|
|
82
84
|
return { fileTimeInfoEntries, contextTimeInfoEntries };
|
|
83
85
|
};
|
|
86
|
+
const directoriesSet =
|
|
87
|
+
directories instanceof Set ? directories : new Set(directories);
|
|
88
|
+
|
|
89
|
+
// Watchpack reports a watched directory (a context dependency) in
|
|
90
|
+
// `changes` whenever its contents change, alongside the individual
|
|
91
|
+
// file events. The default `fs.purge(dir)` matches cache keys by
|
|
92
|
+
// prefix, so it would wipe the stat cache of every file inside the
|
|
93
|
+
// directory even though only file-level events actually invalidate
|
|
94
|
+
// file stats. For directories we explicitly watch, purge only the
|
|
95
|
+
// directory's own entry (`{ exact: true }`, enhanced-resolve >=
|
|
96
|
+
// 5.22.0); file-level events in the same aggregated batch still
|
|
97
|
+
// handle file stats and the parent readdir invalidation.
|
|
98
|
+
/**
|
|
99
|
+
* @param {Changes | null | undefined} changes changes set
|
|
100
|
+
* @param {Removals | null | undefined} removals removals set
|
|
101
|
+
*/
|
|
102
|
+
const purgeChanges = (changes, removals) => {
|
|
103
|
+
const fs = this.inputFileSystem;
|
|
104
|
+
if (!fs || !fs.purge) return;
|
|
105
|
+
if (changes) {
|
|
106
|
+
for (const item of changes) {
|
|
107
|
+
if (directoriesSet.has(item)) {
|
|
108
|
+
fs.purge(item, { exact: true });
|
|
109
|
+
} else {
|
|
110
|
+
fs.purge(item);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (removals) {
|
|
115
|
+
for (const item of removals) {
|
|
116
|
+
fs.purge(item);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
84
121
|
this.watcher.once(
|
|
85
122
|
"aggregated",
|
|
86
123
|
/**
|
|
124
|
+
* Handles the callback logic for this hook.
|
|
87
125
|
* @param {Changes} changes changes
|
|
88
126
|
* @param {Removals} removals removals
|
|
89
127
|
*/
|
|
@@ -92,15 +130,7 @@ class NodeWatchFileSystem {
|
|
|
92
130
|
/** @type {Watchpack} */
|
|
93
131
|
(this.watcher).pause();
|
|
94
132
|
|
|
95
|
-
|
|
96
|
-
if (fs && fs.purge) {
|
|
97
|
-
for (const item of changes) {
|
|
98
|
-
fs.purge(item);
|
|
99
|
-
}
|
|
100
|
-
for (const item of removals) {
|
|
101
|
-
fs.purge(item);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
133
|
+
purgeChanges(changes, removals);
|
|
104
134
|
const { fileTimeInfoEntries, contextTimeInfoEntries } = fetchTimeInfo();
|
|
105
135
|
callback(
|
|
106
136
|
null,
|
|
@@ -170,19 +200,7 @@ class NodeWatchFileSystem {
|
|
|
170
200
|
getInfo: () => {
|
|
171
201
|
const removals = this.watcher && this.watcher.aggregatedRemovals;
|
|
172
202
|
const changes = this.watcher && this.watcher.aggregatedChanges;
|
|
173
|
-
|
|
174
|
-
if (fs && fs.purge) {
|
|
175
|
-
if (removals) {
|
|
176
|
-
for (const item of removals) {
|
|
177
|
-
fs.purge(item);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
if (changes) {
|
|
181
|
-
for (const item of changes) {
|
|
182
|
-
fs.purge(item);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
203
|
+
purgeChanges(changes, removals);
|
|
186
204
|
const { fileTimeInfoEntries, contextTimeInfoEntries } = fetchTimeInfo();
|
|
187
205
|
return {
|
|
188
206
|
changes,
|
|
@@ -26,6 +26,7 @@ const { getUndoPath } = require("../util/identifier");
|
|
|
26
26
|
|
|
27
27
|
class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
|
|
28
28
|
/**
|
|
29
|
+
* Creates an instance of ReadFileChunkLoadingRuntimeModule.
|
|
29
30
|
* @param {ReadOnlyRuntimeRequirements} runtimeRequirements runtime requirements
|
|
30
31
|
*/
|
|
31
32
|
constructor(runtimeRequirements) {
|
|
@@ -35,6 +36,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
/**
|
|
39
|
+
* Returns generated code.
|
|
38
40
|
* @private
|
|
39
41
|
* @param {Chunk} chunk chunk
|
|
40
42
|
* @param {string} rootOutputDir root output directory
|
|
@@ -55,6 +57,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
55
57
|
}
|
|
56
58
|
|
|
57
59
|
/**
|
|
60
|
+
* Generates runtime code for this runtime module.
|
|
58
61
|
* @returns {string | null} runtime code
|
|
59
62
|
*/
|
|
60
63
|
generate() {
|
|
@@ -99,6 +102,11 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
99
102
|
const stateExpression = withHmr
|
|
100
103
|
? `${RuntimeGlobals.hmrRuntimeStatePrefix}_readFileVm`
|
|
101
104
|
: undefined;
|
|
105
|
+
const installedChunksObject = `{\n${Template.indent(
|
|
106
|
+
Array.from(initialChunkIds, (id) => `${JSON.stringify(id)}: 0`).join(
|
|
107
|
+
",\n"
|
|
108
|
+
)
|
|
109
|
+
)}\n}`;
|
|
102
110
|
|
|
103
111
|
return Template.asString([
|
|
104
112
|
withBaseURI
|
|
@@ -108,14 +116,10 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
108
116
|
"// object to store loaded chunks",
|
|
109
117
|
'// "0" means "already loaded", Promise means loading',
|
|
110
118
|
`var installedChunks = ${
|
|
111
|
-
stateExpression
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
",\n"
|
|
116
|
-
)
|
|
117
|
-
),
|
|
118
|
-
"};",
|
|
119
|
+
stateExpression
|
|
120
|
+
? runtimeTemplate.assignOr(stateExpression, installedChunksObject)
|
|
121
|
+
: installedChunksObject
|
|
122
|
+
};`,
|
|
119
123
|
"",
|
|
120
124
|
withOnChunkLoad
|
|
121
125
|
? `${
|
|
@@ -234,7 +238,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
234
238
|
`if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`,
|
|
235
239
|
Template.indent([
|
|
236
240
|
"currentUpdate[moduleId] = updatedModules[moduleId];",
|
|
237
|
-
"
|
|
241
|
+
`${runtimeTemplate.optionalChaining("updatedModulesList", "push(moduleId)")};`
|
|
238
242
|
]),
|
|
239
243
|
"}"
|
|
240
244
|
]),
|