webpack 5.109.1 → 5.110.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 +6 -0
- 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 +26 -17
- 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 +7 -7
- package/lib/Compilation.js +700 -412
- 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 +131 -46
- 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 +101 -14
- 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 +27 -68
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +32 -47
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +19 -15
- package/lib/HotModuleReplacementPlugin.js +16 -44
- package/lib/IgnorePlugin.js +8 -4
- package/lib/IgnoreWarningsPlugin.js +2 -2
- package/lib/InitFragment.js +8 -4
- 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 +212 -153
- 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 +332 -169
- 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 +32 -22
- 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 +11 -7
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +187 -92
- 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 +59 -10
- 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 +276 -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 +6 -11
- 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 +177 -41
- 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 +1113 -568
- 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 +9579 -232
- 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 +121 -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 +13 -10
- 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 +143 -63
- 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 +27 -19
- 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 +97 -49
- 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 +9 -6
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +276 -76
- 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 +5557 -1155
- 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 +7 -8
- 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 +64 -164
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +181 -162
- package/lib/javascript/JavascriptParser.js +286 -110
- 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 +2678 -232
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +37 -15
- 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 +72 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +985 -470
- 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 +51 -35
- 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 +86 -24
- 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 +295 -78
- 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 +4 -4
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +305 -66
- package/lib/serialization/ObjectMiddleware.js +11 -6
- 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 +50 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
- package/lib/stats/StatsFactory.js +25 -26
- 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 +54 -16
- 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 +4 -6
- 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 +23 -16
- 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 +4010 -739
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
package/lib/DefinePlugin.js
CHANGED
|
@@ -23,20 +23,26 @@ const {
|
|
|
23
23
|
const createHash = require("./util/createHash");
|
|
24
24
|
const createHooksRegistry = require("./util/createHooksRegistry");
|
|
25
25
|
|
|
26
|
-
/** @
|
|
27
|
-
/** @
|
|
28
|
-
/**
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/** @
|
|
36
|
-
/** @
|
|
37
|
-
/**
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
/** @import { Expression, MemberExpression } from "estree" */
|
|
27
|
+
/** @import Compiler from "./Compiler" */
|
|
28
|
+
/**
|
|
29
|
+
* @import {
|
|
30
|
+
* BuildInfo,
|
|
31
|
+
* ValueCacheVersion,
|
|
32
|
+
* ValueCacheVersions
|
|
33
|
+
* } from "./Module"
|
|
34
|
+
*/
|
|
35
|
+
/** @import NormalModule, { NormalModuleBuildInfo } from "./NormalModule" */
|
|
36
|
+
/** @import RuntimeTemplate from "./RuntimeTemplate" */
|
|
37
|
+
/**
|
|
38
|
+
* @import JavascriptParser, {
|
|
39
|
+
* DestructuringAssignmentProperties,
|
|
40
|
+
* Members,
|
|
41
|
+
* Range
|
|
42
|
+
* } from "./javascript/JavascriptParser"
|
|
43
|
+
*/
|
|
44
|
+
/** @import { Logger } from "./logging/Logger" */
|
|
45
|
+
/** @import Compilation from "./Compilation" */
|
|
40
46
|
|
|
41
47
|
/** @typedef {null | undefined | RegExp | EXPECTED_FUNCTION | string | number | boolean | bigint | undefined} CodeValuePrimitive */
|
|
42
48
|
/** @typedef {RecursiveArrayOrRecord<CodeValuePrimitive | RuntimeValue>} CodeValue */
|
|
@@ -158,6 +164,21 @@ const isObjectDefinition = (code) =>
|
|
|
158
164
|
!(code instanceof RuntimeValue) &&
|
|
159
165
|
!(code instanceof RegExp);
|
|
160
166
|
|
|
167
|
+
/**
|
|
168
|
+
* Walks a member chain up, dropping its last `count` members.
|
|
169
|
+
* @param {Expression} node member expression
|
|
170
|
+
* @param {number} count members to drop
|
|
171
|
+
* @returns {Expression} the chain without them
|
|
172
|
+
*/
|
|
173
|
+
const dropTrailingMembers = (node, count) => {
|
|
174
|
+
while (count--) {
|
|
175
|
+
node = /** @type {Expression} */ (
|
|
176
|
+
/** @type {MemberExpression} */ (node).object
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
return node;
|
|
180
|
+
};
|
|
181
|
+
|
|
161
182
|
/** @typedef {Set<string> | null} ObjKeys */
|
|
162
183
|
/** @typedef {boolean | undefined | null} AsiSafe */
|
|
163
184
|
|
|
@@ -353,6 +374,13 @@ const toCacheVersion = (code) => {
|
|
|
353
374
|
const PLUGIN_NAME = "DefinePlugin";
|
|
354
375
|
const VALUE_DEP_PREFIX = `webpack/${PLUGIN_NAME} `;
|
|
355
376
|
const VALUE_DEP_MAIN = `webpack/${PLUGIN_NAME}_hash`;
|
|
377
|
+
|
|
378
|
+
// Keys webpack injects itself are not the user's to remove, so `performance.unusedDefines`
|
|
379
|
+
// never sees them.
|
|
380
|
+
/** @type {WeakSet<DefinePlugin>} */
|
|
381
|
+
const INTERNAL_PLUGINS = new WeakSet();
|
|
382
|
+
/** @type {WeakMap<Compilation, Set<string>>} */
|
|
383
|
+
const DECLARED_KEYS = new WeakMap();
|
|
356
384
|
const TYPEOF_OPERATOR_REGEXP = /^typeof\s+/;
|
|
357
385
|
const EMPTY_OBJECT = {};
|
|
358
386
|
|
|
@@ -628,6 +656,14 @@ const getRuntimeRequirements = (code) => {
|
|
|
628
656
|
: [RuntimeGlobals.requireScope];
|
|
629
657
|
};
|
|
630
658
|
|
|
659
|
+
const createCompilationHooks = () => ({
|
|
660
|
+
/**
|
|
661
|
+
* @type {SyncWaterfallHook<[Record<string, CodeValue>]>}
|
|
662
|
+
* @since 5.104.0
|
|
663
|
+
*/
|
|
664
|
+
definitions: new SyncWaterfallHook(["definitions"])
|
|
665
|
+
});
|
|
666
|
+
|
|
631
667
|
/**
|
|
632
668
|
* Prefixes an evaluation error with the offending define key so a bare
|
|
633
669
|
* "Unexpected token" becomes actionable. The original error is mutated and
|
|
@@ -649,9 +685,7 @@ const annotateEvaluationError = (key, code, error) => {
|
|
|
649
685
|
};
|
|
650
686
|
|
|
651
687
|
/**
|
|
652
|
-
*
|
|
653
|
-
* @typedef {object} DefinePluginHooks
|
|
654
|
-
* @property {SyncWaterfallHook<[Record<string, CodeValue>]>} definitions
|
|
688
|
+
* @typedef {ReturnType<typeof createCompilationHooks>} DefinePluginHooks
|
|
655
689
|
*/
|
|
656
690
|
|
|
657
691
|
/** @typedef {Record<string, CodeValue>} Definitions */
|
|
@@ -686,6 +720,22 @@ class DefinePlugin {
|
|
|
686
720
|
PLUGIN_NAME,
|
|
687
721
|
(compilation, { normalModuleFactory }) => {
|
|
688
722
|
const definitions = this.definitions;
|
|
723
|
+
const { performance } = compilation.options;
|
|
724
|
+
// Only `performance.unusedDefines` reads these, so a build without it
|
|
725
|
+
// collects nothing.
|
|
726
|
+
const collectDeclared =
|
|
727
|
+
performance !== false &&
|
|
728
|
+
performance.unusedDefines === true &&
|
|
729
|
+
!INTERNAL_PLUGINS.has(this);
|
|
730
|
+
/** @type {Set<string> | undefined} */
|
|
731
|
+
let declaredKeys;
|
|
732
|
+
if (collectDeclared) {
|
|
733
|
+
declaredKeys = DECLARED_KEYS.get(compilation);
|
|
734
|
+
if (declaredKeys === undefined) {
|
|
735
|
+
declaredKeys = new Set();
|
|
736
|
+
DECLARED_KEYS.set(compilation, declaredKeys);
|
|
737
|
+
}
|
|
738
|
+
}
|
|
689
739
|
const hooks = DefinePlugin.getCompilationHooks(compilation);
|
|
690
740
|
|
|
691
741
|
hooks.definitions.tap(PLUGIN_NAME, (previousDefinitions) => ({
|
|
@@ -1114,7 +1164,7 @@ class DefinePlugin {
|
|
|
1114
1164
|
const chainRoot = isMeta ? "import.meta" : chainParts[0];
|
|
1115
1165
|
const chainPrefix = chainParts.slice(isMeta ? 2 : 1);
|
|
1116
1166
|
/**
|
|
1117
|
-
*
|
|
1167
|
+
* Finds the member of a chain that reads a property that is not defined.
|
|
1118
1168
|
* Walks the merged view so dotted keys of every instance count.
|
|
1119
1169
|
* Collects every define key consulted so the caller can record a
|
|
1120
1170
|
* value dependency on each (a sibling key like `OBJECT.SUB2` affects
|
|
@@ -1122,12 +1172,12 @@ class DefinePlugin {
|
|
|
1122
1172
|
* Inherited members (e.g. `toString`) stay defined.
|
|
1123
1173
|
* @param {Members} members chain members (after the root)
|
|
1124
1174
|
* @param {string[]} deps consulted define keys (mutated)
|
|
1125
|
-
* @returns {
|
|
1175
|
+
* @returns {number} index of the member resolving to `undefined`, or -1
|
|
1126
1176
|
*/
|
|
1127
|
-
const
|
|
1128
|
-
if (members.length <= chainPrefix.length) return
|
|
1177
|
+
const findUndefinedMemberAccess = (members, deps) => {
|
|
1178
|
+
if (members.length <= chainPrefix.length) return -1;
|
|
1129
1179
|
for (let i = 0; i < chainPrefix.length; i++) {
|
|
1130
|
-
if (members[i] !== chainPrefix[i]) return
|
|
1180
|
+
if (members[i] !== chainPrefix[i]) return -1;
|
|
1131
1181
|
}
|
|
1132
1182
|
/** @type {MergedDefinitionNode | undefined} */
|
|
1133
1183
|
let value = definition;
|
|
@@ -1140,9 +1190,9 @@ class DefinePlugin {
|
|
|
1140
1190
|
deps.push(nextPath);
|
|
1141
1191
|
value = value.get(member);
|
|
1142
1192
|
} else if (member in EMPTY_OBJECT) {
|
|
1143
|
-
return
|
|
1193
|
+
return -1;
|
|
1144
1194
|
} else {
|
|
1145
|
-
return
|
|
1195
|
+
return i;
|
|
1146
1196
|
}
|
|
1147
1197
|
} else if (isObjectDefinition(value)) {
|
|
1148
1198
|
// non-expandable object leaf (e.g. an array)
|
|
@@ -1158,37 +1208,45 @@ class DefinePlugin {
|
|
|
1158
1208
|
deps.push(nextPath);
|
|
1159
1209
|
value = mergedDefinitions.definitions[nextPath];
|
|
1160
1210
|
} else {
|
|
1161
|
-
return
|
|
1211
|
+
return i;
|
|
1162
1212
|
}
|
|
1163
1213
|
} else {
|
|
1164
1214
|
// a leaf with members left is a real property access on a value
|
|
1165
|
-
return
|
|
1215
|
+
return -1;
|
|
1166
1216
|
}
|
|
1167
1217
|
path = nextPath;
|
|
1168
1218
|
}
|
|
1169
|
-
return
|
|
1219
|
+
return -1;
|
|
1170
1220
|
};
|
|
1171
1221
|
parser.hooks.expressionMemberChain
|
|
1172
1222
|
.for(chainRoot)
|
|
1173
1223
|
.tap(PLUGIN_NAME, (expr, members) => {
|
|
1174
1224
|
const deps = [key];
|
|
1175
|
-
if (
|
|
1225
|
+
if (findUndefinedMemberAccess(members, deps) === -1) return;
|
|
1176
1226
|
for (const dep of deps) addValueDependency(dep);
|
|
1177
1227
|
return toConstantDependency(parser, "undefined")(expr);
|
|
1178
1228
|
});
|
|
1179
|
-
//
|
|
1180
|
-
//
|
|
1181
|
-
// short-circuits, with the object never inlined.
|
|
1229
|
+
// Cut the chain at the undefined member, so what follows still
|
|
1230
|
+
// throws; an optional link there takes the call, arguments unevaluated.
|
|
1182
1231
|
parser.hooks.callMemberChain
|
|
1183
1232
|
.for(chainRoot)
|
|
1184
|
-
.tap(PLUGIN_NAME, (expr, members) => {
|
|
1233
|
+
.tap(PLUGIN_NAME, (expr, members, membersOptionals) => {
|
|
1185
1234
|
const deps = [key];
|
|
1186
|
-
|
|
1235
|
+
const undefinedIndex = findUndefinedMemberAccess(members, deps);
|
|
1236
|
+
if (undefinedIndex === -1) return;
|
|
1187
1237
|
for (const dep of deps) addValueDependency(dep);
|
|
1238
|
+
if (membersOptionals[undefinedIndex + 1]) {
|
|
1239
|
+
return toConstantDependency(parser, "undefined")(expr);
|
|
1240
|
+
}
|
|
1188
1241
|
toConstantDependency(
|
|
1189
1242
|
parser,
|
|
1190
1243
|
"undefined"
|
|
1191
|
-
)(
|
|
1244
|
+
)(
|
|
1245
|
+
dropTrailingMembers(
|
|
1246
|
+
/** @type {Expression} */ (expr.callee),
|
|
1247
|
+
members.length - 1 - undefinedIndex
|
|
1248
|
+
)
|
|
1249
|
+
);
|
|
1192
1250
|
parser.walkExpressions(expr.arguments);
|
|
1193
1251
|
return true;
|
|
1194
1252
|
});
|
|
@@ -1239,6 +1297,17 @@ class DefinePlugin {
|
|
|
1239
1297
|
warning.hideStack = true;
|
|
1240
1298
|
compilation.warnings.push(warning);
|
|
1241
1299
|
}
|
|
1300
|
+
// Leaves only: an object key counts as used whenever any of its
|
|
1301
|
+
// members is, which would report the parent as unused. An object
|
|
1302
|
+
// with no members has none, and still substitutes.
|
|
1303
|
+
const isLeaf =
|
|
1304
|
+
!isObjectDefinition(code) ||
|
|
1305
|
+
Object.keys(/** @type {Definitions} */ (code)).length === 0;
|
|
1306
|
+
|
|
1307
|
+
if (declaredKeys !== undefined && isLeaf) {
|
|
1308
|
+
declaredKeys.add(prefix + key);
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1242
1311
|
if (isObjectDefinition(code)) {
|
|
1243
1312
|
walkDefinitionsForValues(
|
|
1244
1313
|
/** @type {Definitions} */ (code),
|
|
@@ -1259,17 +1328,33 @@ class DefinePlugin {
|
|
|
1259
1328
|
}
|
|
1260
1329
|
}
|
|
1261
1330
|
|
|
1262
|
-
DefinePlugin.getCompilationHooks = createHooksRegistry(
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1331
|
+
DefinePlugin.getCompilationHooks = createHooksRegistry(createCompilationHooks);
|
|
1332
|
+
|
|
1333
|
+
/**
|
|
1334
|
+
* Marks an instance as webpack's own, so `performance.unusedDefines` never
|
|
1335
|
+
* reports the keys it declares against the user.
|
|
1336
|
+
* @param {DefinePlugin} plugin the instance webpack constructed itself
|
|
1337
|
+
* @returns {DefinePlugin} the same instance
|
|
1338
|
+
*/
|
|
1339
|
+
const markInternal = (plugin) => {
|
|
1340
|
+
INTERNAL_PLUGINS.add(plugin);
|
|
1341
|
+
return plugin;
|
|
1342
|
+
};
|
|
1343
|
+
|
|
1344
|
+
/**
|
|
1345
|
+
* The keys the configuration declared, webpack's own excluded.
|
|
1346
|
+
* @param {Compilation} compilation the compilation
|
|
1347
|
+
* @returns {Set<string> | undefined} the keys, or undefined when none were collected
|
|
1348
|
+
*/
|
|
1349
|
+
const getDeclaredKeys = (compilation) => DECLARED_KEYS.get(compilation);
|
|
1350
|
+
|
|
1351
|
+
DefinePlugin.VALUE_DEP_MAIN = VALUE_DEP_MAIN;
|
|
1352
|
+
DefinePlugin.VALUE_DEP_PREFIX = VALUE_DEP_PREFIX;
|
|
1353
|
+
DefinePlugin.getDeclaredKeys = getDeclaredKeys;
|
|
1354
|
+
DefinePlugin.getMergedDefinitionNode = getMergedDefinitionNode;
|
|
1355
|
+
DefinePlugin.getRuntimeRequirements = getRuntimeRequirements;
|
|
1356
|
+
DefinePlugin.markInternal = markInternal;
|
|
1357
|
+
DefinePlugin.stringifyMergedDefinition = stringifyMergedDefinition;
|
|
1358
|
+
DefinePlugin.toPropertyKey = toPropertyKey;
|
|
1268
1359
|
|
|
1269
1360
|
module.exports = DefinePlugin;
|
|
1270
|
-
module.exports.VALUE_DEP_MAIN = VALUE_DEP_MAIN;
|
|
1271
|
-
module.exports.VALUE_DEP_PREFIX = VALUE_DEP_PREFIX;
|
|
1272
|
-
module.exports.getMergedDefinitionNode = getMergedDefinitionNode;
|
|
1273
|
-
module.exports.getRuntimeRequirements = getRuntimeRequirements;
|
|
1274
|
-
module.exports.stringifyMergedDefinition = stringifyMergedDefinition;
|
|
1275
|
-
module.exports.toPropertyKey = toPropertyKey;
|
package/lib/DependenciesBlock.js
CHANGED
|
@@ -7,12 +7,15 @@
|
|
|
7
7
|
|
|
8
8
|
const makeSerializable = require("./util/makeSerializable");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
|
|
11
|
+
/** @import Dependency, { UpdateHashContext } from "./Dependency" */
|
|
12
|
+
/**
|
|
13
|
+
* @import {
|
|
14
|
+
* ObjectDeserializerContext,
|
|
15
|
+
* ObjectSerializerContext
|
|
16
|
+
* } from "./serialization/ObjectMiddleware"
|
|
17
|
+
*/
|
|
18
|
+
/** @import Hash from "./util/Hash" */
|
|
16
19
|
|
|
17
20
|
/** @typedef {(d: Dependency) => boolean} DependencyFilterFunction */
|
|
18
21
|
|
package/lib/Dependency.js
CHANGED
|
@@ -5,21 +5,29 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const { JAVASCRIPT_TYPE } = require("./ModuleSourceTypeConstants");
|
|
8
9
|
const memoize = require("./util/memoize");
|
|
9
10
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/**
|
|
22
|
-
|
|
11
|
+
/** @import ChunkGraph from "./ChunkGraph" */
|
|
12
|
+
/** @import DependenciesBlock from "./DependenciesBlock" */
|
|
13
|
+
/** @import Module, { SourceType } from "./Module" */
|
|
14
|
+
/** @import ModuleGraph from "./ModuleGraph" */
|
|
15
|
+
/**
|
|
16
|
+
* @import ModuleGraphConnection, {
|
|
17
|
+
* ConnectionState
|
|
18
|
+
* } from "./ModuleGraphConnection"
|
|
19
|
+
*/
|
|
20
|
+
/** @import RuntimeTemplate from "./RuntimeTemplate" */
|
|
21
|
+
/** @import WebpackError from "./errors/WebpackError" */
|
|
22
|
+
/**
|
|
23
|
+
* @import {
|
|
24
|
+
* ObjectDeserializerContext,
|
|
25
|
+
* ObjectSerializerContext
|
|
26
|
+
* } from "./serialization/ObjectMiddleware"
|
|
27
|
+
*/
|
|
28
|
+
/** @import Hash from "./util/Hash" */
|
|
29
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
30
|
+
/** @import ModuleDependency from "./dependencies/ModuleDependency" */
|
|
23
31
|
/**
|
|
24
32
|
* Defines the update hash context type used by this module.
|
|
25
33
|
* @typedef {object} UpdateHashContext
|
|
@@ -165,6 +173,16 @@ class Dependency {
|
|
|
165
173
|
return "unknown";
|
|
166
174
|
}
|
|
167
175
|
|
|
176
|
+
/**
|
|
177
|
+
* Returns the source type this dependency reads from the module it references:
|
|
178
|
+
* `javascript` for anything going through the module wrapper, `asset-url` for a
|
|
179
|
+
* bare url embedded into non-javascript output (css, html, a manifest).
|
|
180
|
+
* @returns {SourceType} the source type read from the referenced module
|
|
181
|
+
*/
|
|
182
|
+
get referencedSourceType() {
|
|
183
|
+
return JAVASCRIPT_TYPE;
|
|
184
|
+
}
|
|
185
|
+
|
|
168
186
|
/**
|
|
169
187
|
* Returns location.
|
|
170
188
|
* @returns {DependencyLocation} location
|
|
@@ -424,9 +442,10 @@ class Dependency {
|
|
|
424
442
|
|
|
425
443
|
/**
|
|
426
444
|
* Returns true if this dependency can be concatenated
|
|
445
|
+
* @param {boolean} concatenateCommonJsModules whether optimization.concatenateModules.commonjs is enabled
|
|
427
446
|
* @returns {boolean} true if this dependency can be concatenated
|
|
428
447
|
*/
|
|
429
|
-
canConcatenate() {
|
|
448
|
+
canConcatenate(concatenateCommonJsModules) {
|
|
430
449
|
return false;
|
|
431
450
|
}
|
|
432
451
|
|
|
@@ -506,11 +525,12 @@ Dependency.isLowPriorityDependency = (dependency) =>
|
|
|
506
525
|
/**
|
|
507
526
|
* Returns true if the dependency can be concatenated (scope hoisting).
|
|
508
527
|
* @param {Dependency} dependency dep
|
|
528
|
+
* @param {boolean} concatenateCommonJsModules whether optimization.concatenateModules.commonjs is enabled
|
|
509
529
|
* @returns {boolean} true if this dependency supports concatenation
|
|
510
530
|
*/
|
|
511
|
-
Dependency.canConcatenate = (dependency) => {
|
|
531
|
+
Dependency.canConcatenate = (dependency, concatenateCommonJsModules) => {
|
|
512
532
|
if (typeof dependency.canConcatenate === "function") {
|
|
513
|
-
return dependency.canConcatenate();
|
|
533
|
+
return dependency.canConcatenate(concatenateCommonJsModules);
|
|
514
534
|
}
|
|
515
535
|
return false;
|
|
516
536
|
};
|
|
@@ -5,18 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @
|
|
9
|
-
/** @
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
|
8
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
9
|
+
/** @import ChunkGraph from "./ChunkGraph" */
|
|
10
|
+
/** @import CodeGenerationResults from "./CodeGenerationResults" */
|
|
11
|
+
/** @import ConcatenationScope from "./ConcatenationScope" */
|
|
12
|
+
/** @import Dependency from "./Dependency" */
|
|
13
|
+
/** @import DependencyTemplates from "./DependencyTemplates" */
|
|
14
|
+
/** @import { GenerateContext } from "./Generator" */
|
|
15
|
+
/** @import Module, { RuntimeRequirements } from "./Module" */
|
|
16
|
+
/** @import ModuleGraph from "./ModuleGraph" */
|
|
17
|
+
/** @import RuntimeTemplate from "./RuntimeTemplate" */
|
|
18
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
20
19
|
|
|
21
20
|
/**
|
|
22
21
|
* Defines the init fragment type used by this module.
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
const { DEFAULTS } = require("./config/defaults");
|
|
9
9
|
const createHash = require("./util/createHash");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
11
|
+
/** @import { DependencyConstructor } from "./Compilation" */
|
|
12
|
+
/** @import DependencyTemplate from "./DependencyTemplate" */
|
|
13
|
+
/** @import { HashFunction } from "./util/Hash" */
|
|
14
14
|
|
|
15
15
|
class DependencyTemplates {
|
|
16
16
|
/**
|
package/lib/DotenvPlugin.js
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
const FileSystemInfo = require("./FileSystemInfo");
|
|
9
9
|
const { join } = require("./util/fs");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
11
|
+
/** @import { DotenvPluginOptions } from "../declarations/WebpackOptions" */
|
|
12
|
+
/** @import Compiler from "./Compiler" */
|
|
13
|
+
/** @import { ItemCacheFacade } from "./CacheFacade" */
|
|
14
|
+
/** @import { InputFileSystem } from "./util/fs" */
|
|
15
|
+
/** @import { Snapshot } from "./FileSystemInfo" */
|
|
16
16
|
|
|
17
17
|
/** @typedef {Exclude<DotenvPluginOptions["prefix"], string | undefined>} Prefix */
|
|
18
18
|
/** @typedef {Record<string, string>} Env */
|
|
@@ -24,8 +24,45 @@ const DEFAULT_TEMPLATE = [
|
|
|
24
24
|
".env.[mode].local"
|
|
25
25
|
];
|
|
26
26
|
|
|
27
|
+
// cspell:ignore Motte, motdotla
|
|
28
|
+
|
|
29
|
+
/*
|
|
30
|
+
* `LINE`, `parse`, `_resolveEscapeSequences`, `expandValue` and `expand`
|
|
31
|
+
* below are ported from dotenv v17.4.2 and dotenv-expand v13.0.0, both
|
|
32
|
+
* BSD-2-Clause. Links stay version-pinned: later dotenv-expand releases
|
|
33
|
+
* ship different license text.
|
|
34
|
+
*
|
|
35
|
+
* https://github.com/motdotla/dotenv/blob/v17.4.2/lib/main.js
|
|
36
|
+
* https://github.com/motdotla/dotenv-expand/blob/v13.0.0/lib/main.js
|
|
37
|
+
*
|
|
38
|
+
* Copyright (c) 2015, Scott Motte
|
|
39
|
+
* Copyright (c) 2016, Scott Motte
|
|
40
|
+
* All rights reserved.
|
|
41
|
+
*
|
|
42
|
+
* Redistribution and use in source and binary forms, with or without
|
|
43
|
+
* modification, are permitted provided that the following conditions are met:
|
|
44
|
+
*
|
|
45
|
+
* * Redistributions of source code must retain the above copyright notice, this
|
|
46
|
+
* list of conditions and the following disclaimer.
|
|
47
|
+
*
|
|
48
|
+
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
49
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
50
|
+
* and/or other materials provided with the distribution.
|
|
51
|
+
*
|
|
52
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
53
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
54
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
55
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
56
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
57
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
58
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
59
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
60
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
61
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
62
|
+
*/
|
|
63
|
+
|
|
27
64
|
// Regex for parsing .env files
|
|
28
|
-
// ported from https://github.com/motdotla/dotenv/blob/
|
|
65
|
+
// ported from https://github.com/motdotla/dotenv/blob/v17.4.2/lib/main.js#L38
|
|
29
66
|
const LINE =
|
|
30
67
|
/^\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?$/gm;
|
|
31
68
|
|
|
@@ -33,7 +70,7 @@ const PLUGIN_NAME = "DotenvPlugin";
|
|
|
33
70
|
|
|
34
71
|
/**
|
|
35
72
|
* Parse .env file content
|
|
36
|
-
* ported from https://github.com/motdotla/dotenv/blob/
|
|
73
|
+
* ported from https://github.com/motdotla/dotenv/blob/v17.4.2/lib/main.js#L41
|
|
37
74
|
* @param {string | Buffer} src the source content to parse
|
|
38
75
|
* @returns {Env} parsed environment variables object
|
|
39
76
|
*/
|
|
@@ -79,7 +116,7 @@ function parse(src) {
|
|
|
79
116
|
|
|
80
117
|
/**
|
|
81
118
|
* Resolve escape sequences
|
|
82
|
-
* ported from https://github.com/motdotla/dotenv-expand
|
|
119
|
+
* ported from https://github.com/motdotla/dotenv-expand/blob/v13.0.0/lib/main.js#L3
|
|
83
120
|
* @param {string} value value to resolve
|
|
84
121
|
* @returns {string} resolved value
|
|
85
122
|
*/
|
|
@@ -89,7 +126,7 @@ function _resolveEscapeSequences(value) {
|
|
|
89
126
|
|
|
90
127
|
/**
|
|
91
128
|
* Expand environment variable value
|
|
92
|
-
* ported from https://github.com/motdotla/dotenv-expand
|
|
129
|
+
* ported from https://github.com/motdotla/dotenv-expand/blob/v13.0.0/lib/main.js#L7
|
|
93
130
|
* @param {string} value value to expand
|
|
94
131
|
* @param {Record<string, string | undefined>} processEnv process.env object
|
|
95
132
|
* @param {Env} runningParsed running parsed object
|
|
@@ -158,7 +195,7 @@ function expandValue(value, processEnv, runningParsed) {
|
|
|
158
195
|
|
|
159
196
|
/**
|
|
160
197
|
* Expand environment variables in parsed object
|
|
161
|
-
* ported from https://github.com/motdotla/dotenv-expand
|
|
198
|
+
* ported from https://github.com/motdotla/dotenv-expand/blob/v13.0.0/lib/main.js#L65
|
|
162
199
|
* @param {{ parsed: Env, processEnv: Record<string, string | undefined> }} options expand options
|
|
163
200
|
* @returns {{ parsed: Env }} expanded options
|
|
164
201
|
*/
|
|
@@ -257,7 +294,7 @@ class DotenvPlugin {
|
|
|
257
294
|
? compiler.context
|
|
258
295
|
: this.options.dir;
|
|
259
296
|
|
|
260
|
-
/** @type {undefined | Snapshot} */
|
|
297
|
+
/** @type {undefined | InstanceType<Snapshot>} */
|
|
261
298
|
let snapshot;
|
|
262
299
|
|
|
263
300
|
const cache = compiler.getCache(PLUGIN_NAME);
|
|
@@ -360,9 +397,9 @@ class DotenvPlugin {
|
|
|
360
397
|
* Loads the provided compiler.
|
|
361
398
|
* @private
|
|
362
399
|
* @param {Compiler} compiler compiler
|
|
363
|
-
* @param {ItemCacheFacade} itemCache item cache facade
|
|
400
|
+
* @param {InstanceType<ItemCacheFacade>} itemCache item cache facade
|
|
364
401
|
* @param {string} dir directory to read
|
|
365
|
-
* @returns {Promise<{ parsed: Env, snapshot: Snapshot }>} parsed result and snapshot
|
|
402
|
+
* @returns {Promise<{ parsed: Env, snapshot: InstanceType<Snapshot> }>} parsed result and snapshot
|
|
366
403
|
*/
|
|
367
404
|
async _loadEnv(compiler, itemCache, dir) {
|
|
368
405
|
const fs = /** @type {InputFileSystem} */ (compiler.inputFileSystem);
|
|
@@ -9,10 +9,14 @@ const EntryOptionPlugin = require("./EntryOptionPlugin");
|
|
|
9
9
|
const EntryPlugin = require("./EntryPlugin");
|
|
10
10
|
const EntryDependency = require("./dependencies/EntryDependency");
|
|
11
11
|
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
/**
|
|
13
|
+
* @import {
|
|
14
|
+
* EntryDescriptionNormalized,
|
|
15
|
+
* EntryStatic,
|
|
16
|
+
* EntryStaticNormalized
|
|
17
|
+
* } from "../declarations/WebpackOptions"
|
|
18
|
+
*/
|
|
19
|
+
/** @import Compiler from "./Compiler" */
|
|
16
20
|
|
|
17
21
|
const PLUGIN_NAME = "DynamicEntryPlugin";
|
|
18
22
|
|
package/lib/EntryOptionPlugin.js
CHANGED
|
@@ -7,10 +7,14 @@
|
|
|
7
7
|
|
|
8
8
|
const { SyncBailHook } = require("tapable");
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @import {
|
|
12
|
+
* EntryDescriptionNormalized as EntryDescription,
|
|
13
|
+
* EntryNormalized as Entry
|
|
14
|
+
* } from "../declarations/WebpackOptions"
|
|
15
|
+
*/
|
|
16
|
+
/** @import Compiler from "./Compiler" */
|
|
17
|
+
/** @import { EntryOptions } from "./Entrypoint" */
|
|
14
18
|
|
|
15
19
|
/**
|
|
16
20
|
* @typedef {object} EntryOptionPluginHooks
|
package/lib/EntryPlugin.js
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
const EntryDependency = require("./dependencies/EntryDependency");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
10
|
+
/** @import Compiler from "./Compiler" */
|
|
11
|
+
/** @import { EntryOptions } from "./Entrypoint" */
|
|
12
12
|
|
|
13
13
|
const PLUGIN_NAME = "EntryPlugin";
|
|
14
14
|
|
package/lib/Entrypoint.js
CHANGED
|
@@ -8,8 +8,12 @@
|
|
|
8
8
|
const ChunkGroup = require("./ChunkGroup");
|
|
9
9
|
const SortableSet = require("./util/SortableSet");
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @import {
|
|
13
|
+
* EntryDescriptionNormalized as EntryDescription
|
|
14
|
+
* } from "../declarations/WebpackOptions"
|
|
15
|
+
*/
|
|
16
|
+
/** @import Chunk from "./Chunk" */
|
|
13
17
|
|
|
14
18
|
/** @typedef {{ name?: string, worklet?: boolean } & Omit<EntryDescription, "import">} EntryOptions */
|
|
15
19
|
|
package/lib/EnvironmentPlugin.js
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
const DefinePlugin = require("./DefinePlugin");
|
|
9
9
|
const WebpackError = require("./errors/WebpackError");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
11
|
+
/** @import Compiler from "./Compiler" */
|
|
12
|
+
/** @import { CodeValue } from "./DefinePlugin" */
|
|
13
13
|
|
|
14
14
|
const PLUGIN_NAME = "EnvironmentPlugin";
|
|
15
15
|
|