@depup/webpack 5.109.0-depup.0 → 5.110.1-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 +7 -7
- package/bin/webpack.js +12 -0
- package/changes.json +10 -10
- package/lib/APIPlugin.js +123 -17
- package/lib/AsyncDependenciesBlock.js +10 -7
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +10 -6
- package/lib/CacheFacade.js +6 -6
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +43 -32
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +15 -16
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +38 -7
- package/lib/Compilation.js +709 -414
- package/lib/Compiler.js +69 -42
- package/lib/ConcatenationScope.js +117 -8
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/ConstPlugin.js +13 -11
- package/lib/ContextExclusionPlugin.js +1 -1
- package/lib/ContextModule.js +146 -54
- package/lib/ContextModuleFactory.js +46 -14
- package/lib/ContextReplacementPlugin.js +12 -14
- package/lib/DefinePlugin.js +168 -57
- package/lib/DependenciesBlock.js +9 -6
- package/lib/Dependency.js +36 -16
- package/lib/DependencyTemplate.js +11 -12
- package/lib/DependencyTemplates.js +3 -3
- package/lib/DotenvPlugin.js +50 -13
- package/lib/DynamicEntryPlugin.js +8 -4
- package/lib/EntryOptionPlugin.js +8 -4
- package/lib/EntryPlugin.js +2 -2
- package/lib/Entrypoint.js +6 -2
- package/lib/EnvironmentPlugin.js +2 -2
- package/lib/EvalDevToolModulePlugin.js +8 -4
- package/lib/EvalSourceMapDevToolPlugin.js +15 -8
- package/lib/ExportsInfo.js +123 -19
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +242 -84
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +116 -42
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +63 -57
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +36 -15
- package/lib/HotModuleReplacementPlugin.js +16 -44
- package/lib/IgnorePlugin.js +8 -4
- package/lib/IgnoreWarningsPlugin.js +2 -2
- package/lib/InitFragment.js +28 -36
- package/lib/JavascriptMetaInfoPlugin.js +35 -4
- package/lib/LazyBarrel.js +3 -4
- package/lib/LibraryTemplatePlugin.js +10 -6
- package/lib/LoaderOptionsPlugin.js +7 -3
- package/lib/LoaderTargetPlugin.js +1 -1
- package/lib/MainTemplate.js +49 -42
- package/lib/ManifestPlugin.js +12 -11
- package/lib/Module.js +62 -33
- package/lib/ModuleFactory.js +3 -3
- package/lib/ModuleFilenameHelpers.js +22 -6
- package/lib/ModuleGraph.js +195 -21
- package/lib/ModuleGraphConnection.js +6 -13
- package/lib/ModuleInfoHeaderPlugin.js +8 -10
- package/lib/ModuleTemplate.js +62 -63
- package/lib/MultiCompiler.js +130 -64
- package/lib/MultiStats.js +40 -9
- package/lib/MultiWatching.js +3 -3
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +29 -19
- package/lib/NormalModule.js +221 -156
- package/lib/NormalModuleFactory.js +563 -112
- package/lib/NormalModuleReplacementPlugin.js +5 -8
- package/lib/NullFactory.js +6 -2
- package/lib/OptionsApply.js +7 -3
- package/lib/Parser.js +7 -3
- package/lib/PlatformPlugin.js +2 -2
- package/lib/PrefetchPlugin.js +1 -1
- package/lib/ProgressPlugin.js +16 -13
- package/lib/ProvidePlugin.js +3 -5
- package/lib/RawModule.js +25 -17
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RequestShortener.js +1 -1
- package/lib/ResolverFactory.js +2 -2
- package/lib/RuntimeGlobals.js +22 -10
- package/lib/RuntimeModule.js +29 -19
- package/lib/RuntimePlugin.js +346 -256
- package/lib/RuntimeTemplate.js +2792 -352
- package/lib/SelfModuleFactory.js +7 -3
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
- package/lib/SourceMapDevToolPlugin.js +30 -20
- package/lib/Stats.js +3 -4
- package/lib/Template.js +55 -25
- package/lib/TemplatedPathPlugin.js +96 -14
- package/lib/UseStrictPlugin.js +4 -6
- package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +8 -6
- package/lib/Watching.js +8 -8
- package/lib/WebpackIsIncludedPlugin.js +2 -4
- package/lib/WebpackOptionsApply.js +308 -18
- package/lib/WebpackOptionsDefaulter.js +6 -2
- package/lib/asset/AssetBytesGenerator.js +12 -10
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +188 -95
- package/lib/asset/AssetModule.js +7 -3
- package/lib/asset/AssetModulesPlugin.js +110 -38
- package/lib/asset/AssetParser.js +9 -7
- package/lib/asset/AssetSourceGenerator.js +60 -13
- package/lib/asset/AssetSourceParser.js +2 -4
- package/lib/asset/RawDataUrlModule.js +24 -16
- package/lib/asset/WebManifestGenerator.js +8 -10
- package/lib/asset/WebManifestParser.js +24 -10
- package/lib/async-modules/AsyncModuleHelpers.js +2 -2
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
- package/lib/async-modules/isGeneratorLowered.js +4 -4
- package/lib/buildChunkGraph.js +36 -27
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
- package/lib/cache/AddManagedPathsPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +18 -10
- package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
- package/lib/cache/PackFileCacheStrategy.js +289 -28
- package/lib/cache/ResolverCachePlugin.js +38 -18
- package/lib/cache/getLazyHashedEtag.js +1 -2
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/cli.js +1 -3
- package/lib/config/browserslistTargetHandler.js +41 -5
- package/lib/config/defaults.js +282 -81
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +36 -16
- package/lib/config/target.js +46 -3
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +24 -15
- package/lib/container/ContainerEntryModuleFactory.js +7 -3
- package/lib/container/ContainerPlugin.js +9 -10
- package/lib/container/ContainerReferencePlugin.js +6 -2
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackModule.js +24 -17
- package/lib/container/FallbackModuleFactory.js +7 -3
- package/lib/container/HoistContainerReferencesPlugin.js +53 -66
- package/lib/container/ModuleFederationPlugin.js +7 -18
- package/lib/container/RemoteModule.js +27 -19
- package/lib/container/RemoteRuntimeModule.js +10 -8
- package/lib/container/moduleFederationHooks.js +32 -0
- package/lib/css/CssGenerator.js +178 -44
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +82 -36
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +197 -106
- package/lib/css/CssParser.js +1248 -618
- package/lib/css/CssServerStylesRuntimeModule.js +54 -0
- package/lib/css/cssMinify.js +168 -0
- package/lib/css/data.js +5324 -0
- package/lib/css/syntax.js +10396 -952
- package/lib/debug/ProfilingPlugin.js +14 -9
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/AMDDefineDependency.js +112 -87
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
- package/lib/dependencies/AMDPlugin.js +9 -7
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
- package/lib/dependencies/AMDRequireContextDependency.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
- package/lib/dependencies/AMDRequireDependency.js +8 -7
- package/lib/dependencies/AMDRequireItemDependency.js +1 -1
- package/lib/dependencies/AMDRuntimeModules.js +21 -1
- package/lib/dependencies/BuildTimeConstDependency.js +102 -0
- package/lib/dependencies/CachedConstDependency.js +11 -8
- package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
- package/lib/dependencies/CommonJsExportRequireDependency.js +140 -45
- package/lib/dependencies/CommonJsExportsDependency.js +53 -49
- package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +140 -26
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -48
- package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
- package/lib/dependencies/CommonJsPlugin.js +35 -6
- package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
- package/lib/dependencies/CommonJsRequireDependency.js +156 -27
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
- package/lib/dependencies/ConstDependency.js +8 -9
- package/lib/dependencies/ContextDependency.js +12 -8
- package/lib/dependencies/ContextDependencyHelpers.js +14 -9
- package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
- package/lib/dependencies/ContextElementDependency.js +31 -12
- package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
- package/lib/dependencies/CssIcssExportDependency.js +56 -28
- package/lib/dependencies/CssIcssImportDependency.js +17 -13
- package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
- package/lib/dependencies/CssImportDependency.js +18 -9
- package/lib/dependencies/CssUrlDependency.js +17 -13
- package/lib/dependencies/DllEntryDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +2 -2
- package/lib/dependencies/ExportBindingInitFragment.js +36 -9
- package/lib/dependencies/ExportsInfoDependency.js +7 -8
- package/lib/dependencies/ExternalModuleDependency.js +9 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
- package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +15 -11
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +159 -71
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
- package/lib/dependencies/HarmonyExports.js +7 -4
- package/lib/dependencies/HarmonyImportDependency.js +28 -20
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
- package/lib/dependencies/HarmonyImportGuard.js +21 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +106 -55
- package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
- package/lib/dependencies/HtmlEntryDependency.js +37 -29
- package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
- package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
- package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
- package/lib/dependencies/HtmlSourceDependency.js +22 -14
- package/lib/dependencies/ImportContextDependency.js +2 -2
- package/lib/dependencies/ImportDependency.js +24 -20
- package/lib/dependencies/ImportEagerDependency.js +6 -9
- package/lib/dependencies/ImportMetaContextDependency.js +2 -2
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
- package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
- package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -71
- package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
- package/lib/dependencies/ImportParserPlugin.js +49 -35
- package/lib/dependencies/ImportPhase.js +12 -5
- package/lib/dependencies/ImportPlugin.js +7 -3
- package/lib/dependencies/ImportWeakDependency.js +6 -9
- package/lib/dependencies/JsonExportsDependency.js +11 -7
- package/lib/dependencies/LoaderDependency.js +2 -2
- package/lib/dependencies/LoaderImportDependency.js +2 -2
- package/lib/dependencies/LoaderPlugin.js +11 -7
- package/lib/dependencies/LocalModuleDependency.js +5 -5
- package/lib/dependencies/LocalModulesHelpers.js +1 -1
- package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
- package/lib/dependencies/ModuleDependency.js +9 -6
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
- package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
- package/lib/dependencies/NullDependency.js +3 -3
- package/lib/dependencies/ProvidedDependency.js +14 -10
- package/lib/dependencies/PureExpressionDependency.js +9 -10
- package/lib/dependencies/RequireContextDependency.js +2 -2
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
- package/lib/dependencies/RequireContextPlugin.js +8 -4
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
- package/lib/dependencies/RequireEnsureDependency.js +8 -7
- package/lib/dependencies/RequireEnsurePlugin.js +7 -3
- package/lib/dependencies/RequireHeaderDependency.js +51 -12
- package/lib/dependencies/RequireIncludeDependency.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
- package/lib/dependencies/RequireIncludePlugin.js +7 -3
- package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
- package/lib/dependencies/RequireResolveContextDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +4 -4
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
- package/lib/dependencies/StaticExportsDependency.js +2 -2
- package/lib/dependencies/SystemPlugin.js +10 -6
- package/lib/dependencies/SystemRuntimeModule.js +10 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
- package/lib/dependencies/URLContextDependency.js +2 -2
- package/lib/dependencies/URLDependency.js +110 -64
- package/lib/dependencies/URLPlugin.js +7 -3
- package/lib/dependencies/UnsupportedDependency.js +4 -4
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
- package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
- package/lib/dependencies/WorkerDependency.js +28 -22
- package/lib/dependencies/WorkletDependency.js +15 -14
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/processExportInfo.js +5 -5
- package/lib/dll/DelegatedModule.js +34 -22
- package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
- package/lib/dll/DelegatedPlugin.js +2 -2
- package/lib/dll/DllEntryPlugin.js +2 -2
- package/lib/dll/DllModule.js +22 -15
- package/lib/dll/DllModuleFactory.js +7 -3
- package/lib/dll/DllPlugin.js +7 -5
- package/lib/dll/DllReferencePlugin.js +10 -7
- package/lib/dll/LibManifestPlugin.js +5 -5
- package/lib/electron/ElectronTargetPlugin.js +53 -49
- package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BroadContextsWarning.js +43 -0
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/errors/CacheEffectivenessWarning.js +55 -0
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CircularDependenciesWarning.js +38 -0
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
- package/lib/errors/DuplicateModulesWarning.js +45 -0
- package/lib/errors/DynamicExportsWarning.js +30 -0
- package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
- package/lib/errors/EntrypointOverlapWarning.js +45 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/EvalUsageWarning.js +28 -0
- package/lib/errors/HookWebpackError.js +5 -5
- package/lib/errors/HotspotsWarning.js +57 -0
- package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
- package/lib/errors/InlinedAssetsWarning.js +36 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/LargeModulesWarning.js +45 -0
- package/lib/errors/LegacyJavascriptWarning.js +48 -0
- package/lib/errors/MissingSideEffectsWarning.js +36 -0
- package/lib/errors/MixedExportsWarning.js +41 -0
- package/lib/errors/ModuleDependencyError.js +13 -16
- package/lib/errors/ModuleDependencyWarning.js +5 -15
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +2 -2
- package/lib/errors/ModuleParseError.js +1 -2
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/errors/OsDependentRuleWarning.js +31 -0
- package/lib/errors/PureAnnotationsWarning.js +36 -0
- package/lib/errors/RedundantDynamicImportWarning.js +31 -0
- package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
- package/lib/errors/SplitChunksCappedWarning.js +41 -0
- package/lib/errors/TinyChunksWarning.js +40 -0
- package/lib/errors/TopLevelThisWarning.js +34 -0
- package/lib/errors/UnsplitVendorsWarning.js +42 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/errors/UnusedAliasesWarning.js +29 -0
- package/lib/errors/UnusedDefinesWarning.js +29 -0
- package/lib/errors/UnusedExternalsWarning.js +29 -0
- package/lib/errors/UnusedReexportsWarning.js +42 -0
- package/lib/errors/UnusedRuleWarning.js +29 -0
- package/lib/errors/WebpackError.js +9 -5
- package/lib/errors/deriveStackFromNestedError.js +90 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +170 -71
- package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +45 -24
- package/lib/hmr/lazyCompilationBackend.js +28 -10
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +299 -79
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +312 -174
- package/lib/html/HtmlParser.js +31 -86
- package/lib/html/data.js +1928 -0
- package/lib/html/htmlMinify.js +288 -0
- package/lib/html/syntax.js +7819 -3331
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
- package/lib/ids/HashedModuleIdsPlugin.js +6 -2
- package/lib/ids/IdHelpers.js +31 -18
- package/lib/ids/NamedChunkIdsPlugin.js +1 -1
- package/lib/ids/NamedModuleIdsPlugin.js +1 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
- package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
- package/lib/ids/SyncModuleIdsPlugin.js +4 -4
- package/lib/index.js +10 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +18 -14
- package/lib/javascript/ChunkFormatHelpers.js +6 -6
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
- package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
- package/lib/javascript/JavascriptGenerator.js +65 -165
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +181 -162
- package/lib/javascript/JavascriptParser.js +291 -112
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/ScopeAnalyzer.js +1094 -0
- package/lib/javascript/StartupHelpers.js +55 -9
- package/lib/javascript/syntax.js +3403 -300
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +38 -16
- package/lib/json/JsonModule.js +7 -3
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -6
- package/lib/library/AbstractLibraryPlugin.js +20 -14
- package/lib/library/AmdLibraryPlugin.js +11 -7
- package/lib/library/AssignLibraryPlugin.js +19 -13
- package/lib/library/EnableLibraryPlugin.js +2 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
- package/lib/library/JsonpLibraryPlugin.js +11 -7
- package/lib/library/ModuleLibraryPlugin.js +256 -64
- package/lib/library/SystemLibraryPlugin.js +12 -8
- package/lib/library/UmdLibraryPlugin.js +62 -25
- package/lib/loaders/LoaderRunner.js +14 -1
- package/lib/loaders/loadLoader.js +8 -4
- package/lib/logging/createConsoleLogger.js +7 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
- package/lib/node/NodeEnvironmentPlugin.js +17 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -3
- package/lib/node/NodeTemplatePlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +70 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +81 -20
- package/lib/node/ReadFileCompileWasmPlugin.js +37 -17
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +21 -17
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +996 -477
- package/lib/optimize/ConstExportsPlugin.js +11 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +9 -5
- package/lib/optimize/InnerGraph.js +28 -12
- package/lib/optimize/InnerGraphPlugin.js +23 -18
- package/lib/optimize/LimitChunkCountPlugin.js +7 -3
- package/lib/optimize/MangleExportsPlugin.js +7 -8
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
- package/lib/optimize/MinChunkSizePlugin.js +7 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +124 -59
- package/lib/optimize/RealContentHashPlugin.js +20 -13
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/RuntimeChunkPlugin.js +2 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
- package/lib/optimize/SplitChunksPlugin.js +232 -68
- package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
- package/lib/performance/BroadContextsPlugin.js +142 -0
- package/lib/performance/CacheEffectivenessPlugin.js +125 -0
- package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
- package/lib/performance/DuplicateModulesPlugin.js +93 -0
- package/lib/performance/DuplicatePackagesPlugin.js +119 -0
- package/lib/performance/DuplicatePackagesWarning.js +84 -0
- package/lib/performance/DynamicExportsPlugin.js +120 -0
- package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
- package/lib/performance/EntrypointOverlapPlugin.js +122 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EvalUsagePlugin.js +115 -0
- package/lib/performance/HotspotsPlugin.js +296 -0
- package/lib/performance/InlinedAssetsPlugin.js +99 -0
- package/lib/performance/LargeModulesPlugin.js +126 -0
- package/lib/performance/LegacyJavascriptPlugin.js +139 -0
- package/lib/performance/MissingSideEffectsPlugin.js +138 -0
- package/lib/performance/MixedExportsPlugin.js +136 -0
- package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
- package/lib/performance/PureAnnotationsPlugin.js +219 -0
- package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
- package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
- package/lib/performance/SizeLimitsPlugin.js +139 -7
- package/lib/performance/SplitChunksCappedPlugin.js +99 -0
- package/lib/performance/TinyChunksPlugin.js +128 -0
- package/lib/performance/TopLevelThisPlugin.js +208 -0
- package/lib/performance/UnsplitVendorsPlugin.js +112 -0
- package/lib/performance/UnusedAliasesPlugin.js +253 -0
- package/lib/performance/UnusedDefinesPlugin.js +87 -0
- package/lib/performance/UnusedExternalsPlugin.js +110 -0
- package/lib/performance/UnusedReexportsPlugin.js +159 -0
- package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
- package/lib/performance/getModuleSize.js +22 -0
- package/lib/performance/getSourceModules.js +22 -0
- package/lib/performance/hasOnlyUnusedExports.js +40 -0
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +377 -136
- package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
- package/lib/prefetch/parseResourceHintOptions.js +31 -4
- package/lib/rules/BasicEffectRulePlugin.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +8 -4
- package/lib/rules/GlobMatcherRulePlugin.js +68 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
- package/lib/rules/RuleSetCompiler.js +146 -12
- package/lib/rules/UseEffectRulePlugin.js +18 -11
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
- package/lib/runtime/BaseUriRuntimeModule.js +33 -7
- package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
- package/lib/runtime/CompatRuntimeModule.js +5 -3
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
- package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
- package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
- package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
- package/lib/runtime/GlobalRuntimeModule.js +18 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
- package/lib/runtime/NonceRuntimeModule.js +10 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
- package/lib/runtime/PublicPathRuntimeModule.js +12 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
- package/lib/runtime/SystemContextRuntimeModule.js +10 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
- package/lib/runtime/WorkerRuntimeModule.js +11 -1
- package/lib/runtime/baseUri.js +63 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +24 -15
- package/lib/schemes/VirtualUrlPlugin.js +13 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +274 -942
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +305 -66
- package/lib/serialization/ObjectMiddleware.js +139 -114
- package/lib/serialization/PlainObjectSerializer.js +19 -16
- package/lib/sharing/ConsumeSharedModule.js +30 -21
- package/lib/sharing/ConsumeSharedPlugin.js +18 -10
- package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
- package/lib/sharing/ProvideSharedModule.js +25 -16
- package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
- package/lib/sharing/ProvideSharedPlugin.js +8 -4
- package/lib/sharing/SharePlugin.js +17 -5
- package/lib/sharing/ShareRuntimeModule.js +4 -4
- package/lib/sharing/resolveMatchedConfigs.js +9 -6
- package/lib/sharing/utils.js +1 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +253 -226
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +60 -192
- package/lib/stats/StatsFactory.js +56 -35
- package/lib/stats/StatsPrinter.js +16 -12
- package/lib/typescript/TypeScriptPlugin.js +12 -14
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/AsyncQueue.js +4 -3
- package/lib/util/Hash.js +5 -1
- package/lib/util/LazySet.js +35 -22
- package/lib/util/LocConverter.js +36 -13
- package/lib/util/SourceProcessor.js +1050 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/chainedImports.js +9 -5
- package/lib/util/cleverMerge.js +1 -1
- package/lib/util/comparators.js +45 -14
- package/lib/util/concatenate.js +203 -77
- package/lib/util/conventions.js +5 -1
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/dataURL.js +225 -1
- package/lib/util/extractSourceMap.js +4 -3
- package/lib/util/findCaseMismatch.js +139 -0
- package/lib/util/formatLocation.js +1 -2
- package/lib/util/fs.js +22 -5
- package/lib/util/globUtils.js +298 -24
- package/lib/util/hash/BatchedHash.js +5 -1
- package/lib/util/hash/BulkUpdateHash.js +5 -1
- package/lib/util/hash/DebugHash.js +5 -1
- package/lib/util/hash/hash-digest.js +6 -2
- package/lib/util/identifier.js +25 -1
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +6 -0
- package/lib/util/lazyModule.js +56 -0
- package/lib/util/makeSerializable.js +7 -3
- package/lib/util/matchAlias.js +25 -0
- package/lib/util/mimeTypes.js +11 -5
- package/lib/util/nonNumericOnlyHash.js +4 -3
- package/lib/util/parseJson.js +5 -3
- package/lib/util/preloadModuleType.js +32 -0
- package/lib/util/registerExternalSerializer.js +7 -5
- package/lib/util/runtime.js +2 -2
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +28 -28
- package/lib/util/source.js +2 -2
- package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
- package/lib/wasm/wasmModuleFilename.js +54 -0
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
- package/lib/wasm-async/AsyncWasmModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
- package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
- package/lib/wasm-sync/SyncWasmModule.js +2 -2
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
- package/lib/wasm-sync/WebAssemblyParser.js +4 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
- package/lib/web/FetchCompileWasmPlugin.js +46 -16
- package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
- package/lib/web/JsonpTemplatePlugin.js +2 -2
- package/lib/webpack.js +22 -11
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +1 -0
- package/package.json +37 -30
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +780 -91
- package/schemas/plugins/HtmlParserOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +4013 -738
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
|
@@ -7,25 +7,27 @@
|
|
|
7
7
|
|
|
8
8
|
const asyncLib = require("neo-async");
|
|
9
9
|
const Queue = require("./util/Queue");
|
|
10
|
+
const { compareModulesByIdentifier } = require("./util/comparators");
|
|
10
11
|
const createHash = require("./util/createHash");
|
|
11
12
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
13
|
+
/** @import Compiler from "./Compiler" */
|
|
14
|
+
/** @import DependenciesBlock from "./DependenciesBlock" */
|
|
15
|
+
/**
|
|
16
|
+
* @import Dependency, {
|
|
17
|
+
* ExportSpec,
|
|
18
|
+
* ExportsSpec,
|
|
19
|
+
* ExportInfoName
|
|
20
|
+
* } from "./Dependency"
|
|
21
|
+
*/
|
|
22
|
+
/** @import ExportsInfo, { RestoreProvidedData } from "./ExportsInfo" */
|
|
23
|
+
/** @import { HashFunction } from "../declarations/WebpackOptions" */
|
|
24
|
+
/** @import LazyBarrelController from "./LazyBarrel" */
|
|
25
|
+
/** @import Module, { BuildInfo } from "./Module" */
|
|
24
26
|
|
|
25
27
|
const PLUGIN_NAME = "FlagDependencyExportsPlugin";
|
|
26
28
|
const PLUGIN_LOGGER_NAME = `webpack.${PLUGIN_NAME}`;
|
|
27
29
|
|
|
28
|
-
/** @typedef {{ etag: string, data: RestoreProvidedData }} MemCacheEntry */
|
|
30
|
+
/** @typedef {{ etag: string, data: InstanceType<RestoreProvidedData> }} MemCacheEntry */
|
|
29
31
|
|
|
30
32
|
/**
|
|
31
33
|
* @param {Module} module the module
|
|
@@ -70,6 +72,8 @@ class FlagDependencyExportsPlugin {
|
|
|
70
72
|
|
|
71
73
|
/** @type {Queue<Module>} */
|
|
72
74
|
const queue = new Queue();
|
|
75
|
+
/** @type {Set<Module>} */
|
|
76
|
+
const modulesToAnalyse = new Set();
|
|
73
77
|
|
|
74
78
|
// Step 1: Try to restore cached provided export info from cache
|
|
75
79
|
logger.time("restore cached provided exports");
|
|
@@ -97,8 +101,8 @@ class FlagDependencyExportsPlugin {
|
|
|
97
101
|
"string"
|
|
98
102
|
) {
|
|
99
103
|
statFlaggedUncached++;
|
|
100
|
-
//
|
|
101
|
-
|
|
104
|
+
// Determined below, in a stable order
|
|
105
|
+
modulesToAnalyse.add(module);
|
|
102
106
|
exportsInfo.setHasProvideInfo();
|
|
103
107
|
return callback();
|
|
104
108
|
}
|
|
@@ -133,8 +137,8 @@ class FlagDependencyExportsPlugin {
|
|
|
133
137
|
exportsInfo.restoreProvided(result);
|
|
134
138
|
} else {
|
|
135
139
|
statNotCached++;
|
|
136
|
-
// Without cached info
|
|
137
|
-
|
|
140
|
+
// Without cached info determine the exports below
|
|
141
|
+
modulesToAnalyse.add(module);
|
|
138
142
|
exportsInfo.setHasProvideInfo();
|
|
139
143
|
}
|
|
140
144
|
callback();
|
|
@@ -145,6 +149,59 @@ class FlagDependencyExportsPlugin {
|
|
|
145
149
|
logger.timeEnd("restore cached provided exports");
|
|
146
150
|
if (err) return callback(err);
|
|
147
151
|
|
|
152
|
+
// Seed the queue with targets before the modules that read
|
|
153
|
+
// them. Enqueueing at the two branches above ordered the work by
|
|
154
|
+
// how fast each cache lookup answered — one is synchronous, the
|
|
155
|
+
// other a `cache.get` callback — so the persistent cache decided
|
|
156
|
+
// it. A module analysed before the module it re-exports from
|
|
157
|
+
// reads exports that are not determined yet and over-estimates,
|
|
158
|
+
// and this loop can add exports info but never retract it, so
|
|
159
|
+
// the over-estimate survives the pass that corrects it. The
|
|
160
|
+
// roots are sorted so the walk is stable, and post-order visits
|
|
161
|
+
// each module after everything it points at.
|
|
162
|
+
/** @type {Set<Module>} */
|
|
163
|
+
const visited = new Set();
|
|
164
|
+
/** @type {Module[]} */
|
|
165
|
+
const stack = [];
|
|
166
|
+
/** @type {Set<Module>} */
|
|
167
|
+
const expanded = new Set();
|
|
168
|
+
for (const root of [...modulesToAnalyse].sort(
|
|
169
|
+
compareModulesByIdentifier
|
|
170
|
+
)) {
|
|
171
|
+
if (visited.has(root)) continue;
|
|
172
|
+
stack.push(root);
|
|
173
|
+
while (stack.length > 0) {
|
|
174
|
+
const current = stack[stack.length - 1];
|
|
175
|
+
if (expanded.has(current)) {
|
|
176
|
+
stack.pop();
|
|
177
|
+
if (!visited.has(current)) {
|
|
178
|
+
visited.add(current);
|
|
179
|
+
if (modulesToAnalyse.has(current)) {
|
|
180
|
+
queue.enqueue(current);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
expanded.add(current);
|
|
186
|
+
for (const connection of moduleGraph.getOutgoingConnections(
|
|
187
|
+
current
|
|
188
|
+
)) {
|
|
189
|
+
const target = connection.module;
|
|
190
|
+
// A module restored from cache is already final, so
|
|
191
|
+
// nothing has to be ordered before it and the walk stops
|
|
192
|
+
// there — on an incremental build that is most of them.
|
|
193
|
+
if (
|
|
194
|
+
target !== undefined &&
|
|
195
|
+
target !== null &&
|
|
196
|
+
modulesToAnalyse.has(target) &&
|
|
197
|
+
!expanded.has(target)
|
|
198
|
+
) {
|
|
199
|
+
stack.push(target);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
148
205
|
/** @type {Set<Module>} */
|
|
149
206
|
const modulesToStore = new Set();
|
|
150
207
|
|
|
@@ -489,7 +546,7 @@ class FlagDependencyExportsPlugin {
|
|
|
489
546
|
}
|
|
490
547
|
);
|
|
491
548
|
|
|
492
|
-
/** @type {WeakMap<Module, RestoreProvidedData
|
|
549
|
+
/** @type {WeakMap<Module, InstanceType<RestoreProvidedData>>} */
|
|
493
550
|
const providedExportsCache = new WeakMap();
|
|
494
551
|
compilation.hooks.rebuildModule.tap(PLUGIN_NAME, (module) => {
|
|
495
552
|
providedExportsCache.set(
|
|
@@ -499,7 +556,7 @@ class FlagDependencyExportsPlugin {
|
|
|
499
556
|
});
|
|
500
557
|
compilation.hooks.finishRebuildingModule.tap(PLUGIN_NAME, (module) => {
|
|
501
558
|
moduleGraph.getExportsInfo(module).restoreProvided(
|
|
502
|
-
/** @type {RestoreProvidedData} */
|
|
559
|
+
/** @type {InstanceType<RestoreProvidedData>} */
|
|
503
560
|
(providedExportsCache.get(module))
|
|
504
561
|
);
|
|
505
562
|
});
|
|
@@ -11,15 +11,15 @@ const ModuleGraphConnection = require("./ModuleGraphConnection");
|
|
|
11
11
|
const { STAGE_DEFAULT } = require("./OptimizationStages");
|
|
12
12
|
const ArrayQueue = require("./util/ArrayQueue");
|
|
13
13
|
const TupleQueue = require("./util/TupleQueue");
|
|
14
|
+
const TupleSet = require("./util/TupleSet");
|
|
14
15
|
const { getEntryRuntime, mergeRuntimeOwned } = require("./util/runtime");
|
|
15
16
|
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @
|
|
22
|
-
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
17
|
+
/** @import Compiler from "./Compiler" */
|
|
18
|
+
/** @import DependenciesBlock from "./DependenciesBlock" */
|
|
19
|
+
/** @import { ReferencedExport, ReferencedExports } from "./Dependency" */
|
|
20
|
+
/** @import ExportsInfo from "./ExportsInfo" */
|
|
21
|
+
/** @import Module from "./Module" */
|
|
22
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
23
23
|
|
|
24
24
|
const {
|
|
25
25
|
NO_EXPORTS_REFERENCED,
|
|
@@ -30,6 +30,19 @@ const {
|
|
|
30
30
|
const PLUGIN_NAME = "FlagDependencyUsagePlugin";
|
|
31
31
|
const PLUGIN_LOGGER_NAME = `webpack.${PLUGIN_NAME}`;
|
|
32
32
|
|
|
33
|
+
// Hoisted stateless predicates for setUsedConditionally on the innermost
|
|
34
|
+
// used-export loop, so they aren't re-allocated per export.
|
|
35
|
+
/**
|
|
36
|
+
* @param {import("./ExportsInfo").UsageStateType} used usage state
|
|
37
|
+
* @returns {boolean} whether unused
|
|
38
|
+
*/
|
|
39
|
+
const IS_UNUSED = (used) => used === UsageState.Unused;
|
|
40
|
+
/**
|
|
41
|
+
* @param {import("./ExportsInfo").UsageStateType} used usage state
|
|
42
|
+
* @returns {boolean} whether not used
|
|
43
|
+
*/
|
|
44
|
+
const IS_NOT_USED = (used) => used !== UsageState.Used;
|
|
45
|
+
|
|
33
46
|
class FlagDependencyUsagePlugin {
|
|
34
47
|
/**
|
|
35
48
|
* Creates an instance of FlagDependencyUsagePlugin.
|
|
@@ -67,20 +80,17 @@ class FlagDependencyUsagePlugin {
|
|
|
67
80
|
/** @type {TupleQueue<Module, RuntimeSpec>} */
|
|
68
81
|
const queue = new TupleQueue();
|
|
69
82
|
|
|
83
|
+
/** @type {TupleSet<Module, RuntimeSpec> | undefined} */
|
|
84
|
+
let walkedSideEffectFreeModules;
|
|
85
|
+
|
|
70
86
|
/**
|
|
71
87
|
* Process referenced module.
|
|
72
88
|
* @param {Module} module module to process
|
|
73
89
|
* @param {ReferencedExports} usedExports list of used exports
|
|
74
90
|
* @param {RuntimeSpec} runtime part of which runtime
|
|
75
|
-
* @param {boolean} forceSideEffects always apply side effects
|
|
76
91
|
* @returns {void}
|
|
77
92
|
*/
|
|
78
|
-
const processReferencedModule = (
|
|
79
|
-
module,
|
|
80
|
-
usedExports,
|
|
81
|
-
runtime,
|
|
82
|
-
forceSideEffects
|
|
83
|
-
) => {
|
|
93
|
+
const processReferencedModule = (module, usedExports, runtime) => {
|
|
84
94
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
85
95
|
if (usedExports === EXPORTS_OBJECT_REFERENCED_MANGLEABLE) {
|
|
86
96
|
// The whole namespace object escapes via a reference that codegen
|
|
@@ -162,7 +172,7 @@ class FlagDependencyUsagePlugin {
|
|
|
162
172
|
if (nestedInfo) {
|
|
163
173
|
if (
|
|
164
174
|
exportInfo.setUsedConditionally(
|
|
165
|
-
|
|
175
|
+
IS_UNUSED,
|
|
166
176
|
UsageState.OnlyPropertiesUsed,
|
|
167
177
|
runtime
|
|
168
178
|
)
|
|
@@ -181,7 +191,7 @@ class FlagDependencyUsagePlugin {
|
|
|
181
191
|
}
|
|
182
192
|
if (
|
|
183
193
|
exportInfo.setUsedConditionally(
|
|
184
|
-
|
|
194
|
+
IS_NOT_USED,
|
|
185
195
|
UsageState.Used,
|
|
186
196
|
runtime
|
|
187
197
|
)
|
|
@@ -198,20 +208,22 @@ class FlagDependencyUsagePlugin {
|
|
|
198
208
|
}
|
|
199
209
|
}
|
|
200
210
|
}
|
|
201
|
-
} else
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
return;
|
|
211
|
+
} else if (
|
|
212
|
+
module.factoryMeta !== undefined &&
|
|
213
|
+
module.factoryMeta.sideEffectFree
|
|
214
|
+
) {
|
|
215
|
+
// Nothing is used and the module has no side effects, so it is
|
|
216
|
+
// not used for them either. An active connection still evaluates
|
|
217
|
+
// it, so keep walking it to count the references it makes itself.
|
|
218
|
+
if (walkedSideEffectFreeModules === undefined) {
|
|
219
|
+
walkedSideEffectFreeModules = new TupleSet();
|
|
211
220
|
}
|
|
212
|
-
if (
|
|
221
|
+
if (!walkedSideEffectFreeModules.has(module, runtime)) {
|
|
222
|
+
walkedSideEffectFreeModules.add(module, runtime);
|
|
213
223
|
queue.enqueue(module, runtime);
|
|
214
224
|
}
|
|
225
|
+
} else if (exportsInfo.setUsedForSideEffectsOnly(runtime)) {
|
|
226
|
+
queue.enqueue(module, runtime);
|
|
215
227
|
}
|
|
216
228
|
};
|
|
217
229
|
|
|
@@ -219,18 +231,18 @@ class FlagDependencyUsagePlugin {
|
|
|
219
231
|
* Processes the provided module.
|
|
220
232
|
* @param {DependenciesBlock} module the module
|
|
221
233
|
* @param {RuntimeSpec} runtime part of which runtime
|
|
222
|
-
* @param {boolean} forceSideEffects always apply side effects
|
|
223
234
|
* @returns {void}
|
|
224
235
|
*/
|
|
225
|
-
const processModule = (module, runtime
|
|
236
|
+
const processModule = (module, runtime) => {
|
|
226
237
|
/** @typedef {Map<string, string[] | ReferencedExport>} ExportMaps */
|
|
227
238
|
/** @type {Map<Module, ReferencedExports | ExportMaps>} */
|
|
228
239
|
const map = new Map();
|
|
229
240
|
// Modules whose whole namespace object escapes in a mangleable way.
|
|
230
241
|
// Tracked separately so specific member references are still merged
|
|
231
242
|
// (and marked used) instead of being dropped by the escape marker.
|
|
232
|
-
|
|
233
|
-
|
|
243
|
+
// Lazily allocated — usually empty.
|
|
244
|
+
/** @type {Set<Module> | undefined} */
|
|
245
|
+
let mangleableEscapeModules;
|
|
234
246
|
|
|
235
247
|
/** @type {ArrayQueue<DependenciesBlock>} */
|
|
236
248
|
const queue = new ArrayQueue();
|
|
@@ -244,8 +256,7 @@ class FlagDependencyUsagePlugin {
|
|
|
244
256
|
b,
|
|
245
257
|
this.global
|
|
246
258
|
? undefined
|
|
247
|
-
: b.groupOptions.entryOptions.runtime || undefined
|
|
248
|
-
true
|
|
259
|
+
: b.groupOptions.entryOptions.runtime || undefined
|
|
249
260
|
);
|
|
250
261
|
} else {
|
|
251
262
|
queue.enqueue(b);
|
|
@@ -260,7 +271,7 @@ class FlagDependencyUsagePlugin {
|
|
|
260
271
|
if (activeState === false) continue;
|
|
261
272
|
const { module } = connection;
|
|
262
273
|
if (activeState === ModuleGraphConnection.TRANSITIVE_ONLY) {
|
|
263
|
-
processModule(module, runtime
|
|
274
|
+
processModule(module, runtime);
|
|
264
275
|
continue;
|
|
265
276
|
}
|
|
266
277
|
const oldReferencedExports = map.get(module);
|
|
@@ -273,7 +284,9 @@ class FlagDependencyUsagePlugin {
|
|
|
273
284
|
// conservative result and always wins.
|
|
274
285
|
if (referencedExports === EXPORTS_OBJECT_REFERENCED) {
|
|
275
286
|
map.set(module, EXPORTS_OBJECT_REFERENCED);
|
|
276
|
-
mangleableEscapeModules
|
|
287
|
+
if (mangleableEscapeModules) {
|
|
288
|
+
mangleableEscapeModules.delete(module);
|
|
289
|
+
}
|
|
277
290
|
continue;
|
|
278
291
|
}
|
|
279
292
|
// A mangleable whole-object escape keeps the module's exports
|
|
@@ -284,6 +297,9 @@ class FlagDependencyUsagePlugin {
|
|
|
284
297
|
if (
|
|
285
298
|
referencedExports === EXPORTS_OBJECT_REFERENCED_MANGLEABLE
|
|
286
299
|
) {
|
|
300
|
+
if (mangleableEscapeModules === undefined) {
|
|
301
|
+
mangleableEscapeModules = new Set();
|
|
302
|
+
}
|
|
287
303
|
mangleableEscapeModules.add(module);
|
|
288
304
|
continue;
|
|
289
305
|
}
|
|
@@ -343,28 +359,23 @@ class FlagDependencyUsagePlugin {
|
|
|
343
359
|
|
|
344
360
|
for (const [module, referencedExports] of map) {
|
|
345
361
|
if (Array.isArray(referencedExports)) {
|
|
346
|
-
processReferencedModule(
|
|
347
|
-
module,
|
|
348
|
-
referencedExports,
|
|
349
|
-
runtime,
|
|
350
|
-
forceSideEffects
|
|
351
|
-
);
|
|
362
|
+
processReferencedModule(module, referencedExports, runtime);
|
|
352
363
|
} else {
|
|
353
364
|
processReferencedModule(
|
|
354
365
|
module,
|
|
355
366
|
[...referencedExports.values()],
|
|
356
|
-
runtime
|
|
357
|
-
forceSideEffects
|
|
367
|
+
runtime
|
|
358
368
|
);
|
|
359
369
|
}
|
|
360
370
|
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
371
|
+
if (mangleableEscapeModules) {
|
|
372
|
+
for (const module of mangleableEscapeModules) {
|
|
373
|
+
processReferencedModule(
|
|
374
|
+
module,
|
|
375
|
+
EXPORTS_OBJECT_REFERENCED_MANGLEABLE,
|
|
376
|
+
runtime
|
|
377
|
+
);
|
|
378
|
+
}
|
|
368
379
|
}
|
|
369
380
|
};
|
|
370
381
|
|
|
@@ -386,12 +397,7 @@ class FlagDependencyUsagePlugin {
|
|
|
386
397
|
const processEntryDependency = (dep, runtime) => {
|
|
387
398
|
const module = moduleGraph.getModule(dep);
|
|
388
399
|
if (module) {
|
|
389
|
-
processReferencedModule(
|
|
390
|
-
module,
|
|
391
|
-
NO_EXPORTS_REFERENCED,
|
|
392
|
-
runtime,
|
|
393
|
-
true
|
|
394
|
-
);
|
|
400
|
+
processReferencedModule(module, NO_EXPORTS_REFERENCED, runtime);
|
|
395
401
|
}
|
|
396
402
|
};
|
|
397
403
|
/** @type {RuntimeSpec} */
|
|
@@ -422,7 +428,7 @@ class FlagDependencyUsagePlugin {
|
|
|
422
428
|
const [module, runtime] = /** @type {[Module, RuntimeSpec]} */ (
|
|
423
429
|
queue.dequeue()
|
|
424
430
|
);
|
|
425
|
-
processModule(module, runtime
|
|
431
|
+
processModule(module, runtime);
|
|
426
432
|
}
|
|
427
433
|
logger.timeEnd("trace exports usage in graph");
|
|
428
434
|
}
|
package/lib/Generator.js
CHANGED
|
@@ -6,22 +6,27 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { JAVASCRIPT_TYPE } = require("./ModuleSourceTypeConstants");
|
|
9
|
+
const memoize = require("./util/memoize");
|
|
9
10
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
/** @
|
|
11
|
+
/** @import { Source } from "webpack-sources" */
|
|
12
|
+
/** @import ChunkGraph from "./ChunkGraph" */
|
|
13
|
+
/** @import CodeGenerationResults from "./CodeGenerationResults" */
|
|
14
|
+
/** @import ConcatenationScope from "./ConcatenationScope" */
|
|
15
|
+
/** @import DependencyTemplates from "./DependencyTemplates" */
|
|
16
|
+
/**
|
|
17
|
+
* @import {
|
|
18
|
+
* CodeGenerationResultData,
|
|
19
|
+
* ConcatenationBailoutReasonContext,
|
|
20
|
+
* RuntimeRequirements,
|
|
21
|
+
* SourceType,
|
|
22
|
+
* SourceTypes
|
|
23
|
+
* } from "./Module"
|
|
24
|
+
*/
|
|
25
|
+
/** @import ModuleGraph from "./ModuleGraph" */
|
|
26
|
+
/** @import NormalModule from "./NormalModule" */
|
|
27
|
+
/** @import RuntimeTemplate from "./RuntimeTemplate" */
|
|
28
|
+
/** @import Hash from "./util/Hash" */
|
|
29
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
25
30
|
|
|
26
31
|
/**
|
|
27
32
|
* Defines the generate context type used by this module.
|
|
@@ -56,6 +61,8 @@ const { JAVASCRIPT_TYPE } = require("./ModuleSourceTypeConstants");
|
|
|
56
61
|
* @property {RuntimeTemplate=} runtimeTemplate
|
|
57
62
|
*/
|
|
58
63
|
|
|
64
|
+
const getModuleParseError = memoize(() => require("./errors/ModuleParseError"));
|
|
65
|
+
|
|
59
66
|
class Generator {
|
|
60
67
|
/**
|
|
61
68
|
* Returns generator by type.
|
|
@@ -66,6 +73,20 @@ class Generator {
|
|
|
66
73
|
return new ByTypeGenerator(map);
|
|
67
74
|
}
|
|
68
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Returns the statement a module that failed to build throws when executed.
|
|
78
|
+
* @param {Error} error the build error
|
|
79
|
+
* @param {string=} parseErrorConstructor constructor for a rejected source, defaults to `SyntaxError` (WebAssembly rejects with `WebAssembly.CompileError` instead)
|
|
80
|
+
* @returns {string} javascript statement
|
|
81
|
+
*/
|
|
82
|
+
static throwBuildErrorCode(error, parseErrorConstructor = "SyntaxError") {
|
|
83
|
+
// A source the parser rejected throws what a native load of it would.
|
|
84
|
+
const name =
|
|
85
|
+
error instanceof getModuleParseError() ? parseErrorConstructor : "Error";
|
|
86
|
+
|
|
87
|
+
return `throw new ${name}(${JSON.stringify(error.message)});`;
|
|
88
|
+
}
|
|
89
|
+
|
|
69
90
|
/* istanbul ignore next */
|
|
70
91
|
/**
|
|
71
92
|
* Returns the source types available for this module.
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { SyncBailHook } = require("tapable");
|
|
9
8
|
const { RawSource } = require("webpack-sources");
|
|
10
9
|
const ChunkGraph = require("./ChunkGraph");
|
|
11
10
|
const Compilation = require("./Compilation");
|
|
@@ -27,7 +26,7 @@ const ModuleHotAcceptDependency = require("./dependencies/ModuleHotAcceptDepende
|
|
|
27
26
|
const ModuleHotDeclineDependency = require("./dependencies/ModuleHotDeclineDependency");
|
|
28
27
|
const WebpackError = require("./errors/WebpackError");
|
|
29
28
|
const HotModuleReplacementRuntimeModule = require("./hmr/HotModuleReplacementRuntimeModule");
|
|
30
|
-
const
|
|
29
|
+
const getParserHooks = require("./hmr/parserHooks");
|
|
31
30
|
const {
|
|
32
31
|
evaluateToIdentifier
|
|
33
32
|
} = require("./javascript/JavascriptParserHelpers");
|
|
@@ -44,34 +43,22 @@ const {
|
|
|
44
43
|
subtractRuntime
|
|
45
44
|
} = require("./util/runtime");
|
|
46
45
|
|
|
47
|
-
/** @
|
|
48
|
-
/** @
|
|
49
|
-
/** @
|
|
50
|
-
/** @
|
|
51
|
-
/** @
|
|
52
|
-
/** @
|
|
53
|
-
/** @
|
|
54
|
-
/** @
|
|
55
|
-
/** @
|
|
56
|
-
/** @
|
|
57
|
-
/** @
|
|
58
|
-
/** @
|
|
59
|
-
/** @
|
|
60
|
-
/** @typedef {import("./css/CssModule").CssModuleBuildMeta} CssModuleBuildMeta */
|
|
61
|
-
/** @typedef {import("./RuntimeModule")} RuntimeModule */
|
|
62
|
-
/** @typedef {import("./javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */
|
|
63
|
-
/** @typedef {import("./javascript/JavascriptParserHelpers").Range} Range */
|
|
64
|
-
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
46
|
+
/** @import { CallExpression, Expression } from "estree" */
|
|
47
|
+
/** @import Chunk, { ChunkId } from "./Chunk" */
|
|
48
|
+
/** @import { ModuleId } from "./ChunkGraph" */
|
|
49
|
+
/** @import { AssetInfo } from "./Compilation" */
|
|
50
|
+
/** @import Compiler, { Records } from "./Compiler" */
|
|
51
|
+
/** @import CodeGenerationResults from "./CodeGenerationResults" */
|
|
52
|
+
/** @import Module, { BuildInfo } from "./Module" */
|
|
53
|
+
/** @import { CssModuleBuildMeta } from "./css/CssModule" */
|
|
54
|
+
/** @import { HMRJavascriptParserHooks } from "./hmr/parserHooks" */
|
|
55
|
+
/** @import RuntimeModule from "./RuntimeModule" */
|
|
56
|
+
/** @import BasicEvaluatedExpression from "./javascript/BasicEvaluatedExpression" */
|
|
57
|
+
/** @import JavascriptParser, { Range } from "./javascript/JavascriptParser" */
|
|
58
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
65
59
|
|
|
66
60
|
/** @typedef {string[]} Requests */
|
|
67
61
|
|
|
68
|
-
/**
|
|
69
|
-
* Defines the hmr javascript parser hooks type used by this module.
|
|
70
|
-
* @typedef {object} HMRJavascriptParserHooks
|
|
71
|
-
* @property {SyncBailHook<[Expression | SpreadElement, Requests], void>} hotAcceptCallback
|
|
72
|
-
* @property {SyncBailHook<[CallExpression, Requests], void>} hotAcceptWithoutCallback
|
|
73
|
-
*/
|
|
74
|
-
|
|
75
62
|
/** @typedef {number} HotIndex */
|
|
76
63
|
/** @typedef {Record<string, string>} FullHashChunkModuleHashes */
|
|
77
64
|
/** @typedef {Record<string, string>} ChunkModuleHashes */
|
|
@@ -85,9 +72,6 @@ const {
|
|
|
85
72
|
/** @typedef {{ updatedChunkIds: ChunkIds, removedChunkIds: ChunkIds, removedModules: ModuleSet, forceLoadChunkIds: ChunkIds, filename: string, assetInfo: AssetInfo }} HotUpdateMainContentByRuntimeItem */
|
|
86
73
|
/** @typedef {Map<string, HotUpdateMainContentByRuntimeItem>} HotUpdateMainContentByRuntime */
|
|
87
74
|
|
|
88
|
-
/** @type {WeakMap<JavascriptParser, HMRJavascriptParserHooks>} */
|
|
89
|
-
const parserHooksMap = new WeakMap();
|
|
90
|
-
|
|
91
75
|
const PLUGIN_NAME = "HotModuleReplacementPlugin";
|
|
92
76
|
|
|
93
77
|
class HotModuleReplacementPlugin {
|
|
@@ -97,20 +81,7 @@ class HotModuleReplacementPlugin {
|
|
|
97
81
|
* @returns {HMRJavascriptParserHooks} the attached hooks
|
|
98
82
|
*/
|
|
99
83
|
static getParserHooks(parser) {
|
|
100
|
-
|
|
101
|
-
throw new TypeError(
|
|
102
|
-
"The 'parser' argument must be an instance of JavascriptParser"
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
let hooks = parserHooksMap.get(parser);
|
|
106
|
-
if (hooks === undefined) {
|
|
107
|
-
hooks = {
|
|
108
|
-
hotAcceptCallback: new SyncBailHook(["expression", "requests"]),
|
|
109
|
-
hotAcceptWithoutCallback: new SyncBailHook(["expression", "requests"])
|
|
110
|
-
};
|
|
111
|
-
parserHooksMap.set(parser, hooks);
|
|
112
|
-
}
|
|
113
|
-
return hooks;
|
|
84
|
+
return getParserHooks(parser);
|
|
114
85
|
}
|
|
115
86
|
|
|
116
87
|
/**
|
|
@@ -132,6 +103,7 @@ class HotModuleReplacementPlugin {
|
|
|
132
103
|
* @returns {(expr: CallExpression) => boolean | undefined} callback
|
|
133
104
|
*/
|
|
134
105
|
const createAcceptHandler = (parser, ParamDependency) => {
|
|
106
|
+
// through the static method: replacing it stays a way to intercept
|
|
135
107
|
const { hotAcceptCallback, hotAcceptWithoutCallback } =
|
|
136
108
|
HotModuleReplacementPlugin.getParserHooks(parser);
|
|
137
109
|
|
package/lib/IgnorePlugin.js
CHANGED
|
@@ -8,10 +8,14 @@
|
|
|
8
8
|
const RawModule = require("./RawModule");
|
|
9
9
|
const EntryDependency = require("./dependencies/EntryDependency");
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @import {
|
|
13
|
+
* IgnorePluginOptions
|
|
14
|
+
* } from "../declarations/plugins/IgnorePlugin"
|
|
15
|
+
*/
|
|
16
|
+
/** @import Compiler from "./Compiler" */
|
|
17
|
+
/** @import { ResolveData } from "./NormalModuleFactory" */
|
|
18
|
+
/** @import { BeforeContextResolveData } from "./ContextModuleFactory" */
|
|
15
19
|
|
|
16
20
|
/** @typedef {(resource: string, context: string) => boolean} CheckResourceFn */
|
|
17
21
|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @
|
|
9
|
-
/** @
|
|
8
|
+
/** @import Compiler from "./Compiler" */
|
|
9
|
+
/** @import Compilation from "./Compilation" */
|
|
10
10
|
|
|
11
11
|
/** @typedef {(warning: Error, compilation: Compilation) => boolean} IgnoreFn */
|
|
12
12
|
|