@depup/webpack 5.109.2-depup.0 → 5.110.3-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 +5 -5
- package/changes.json +7 -7
- 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 +46 -35
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +4 -7
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +7 -7
- package/lib/Compilation.js +688 -409
- package/lib/Compiler.js +53 -38
- package/lib/ConcatenationScope.js +107 -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 +121 -37
- 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 +91 -26
- 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 +111 -14
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +232 -77
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +44 -70
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +40 -49
- 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 +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 +9 -4
- 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 +152 -103
- package/lib/NormalModuleFactory.js +555 -110
- 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 +335 -169
- package/lib/RuntimeTemplate.js +2761 -316
- 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 +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 +12 -6
- 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 +30 -23
- 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 +270 -78
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +46 -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 -24
- 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 +171 -43
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +84 -32
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +172 -100
- 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 +5334 -0
- package/lib/css/syntax.js +9647 -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 +119 -34
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
- 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 +170 -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 +24 -11
- 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 +23 -14
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +80 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +286 -80
- 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 +121 -60
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +124 -38
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +152 -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 +49 -31
- 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 +45 -5
- package/lib/dependencies/ImportDependency.js +33 -50
- 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 +73 -49
- 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 +50 -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 +47 -28
- package/lib/dependencies/WorkerDependency.js +22 -22
- package/lib/dependencies/WorkletDependency.js +18 -21
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/importOptionsCheck.js +47 -0
- 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/DotenvFileError.js +29 -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/ImportedBindingAssignmentError.js +30 -0
- 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 +86 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +161 -62
- 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 +277 -77
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +366 -200
- 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 +6034 -1384
- 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 +65 -165
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +103 -123
- package/lib/javascript/JavascriptParser.js +242 -99
- 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 +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 +47 -6
- 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 +65 -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 +1030 -476
- package/lib/optimize/ConstExportsPlugin.js +16 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +130 -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 +121 -41
- 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 -79
- 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 +6 -2
- 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 +34 -7
- 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 +46 -20
- 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 +22 -9
- 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 +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 +20 -24
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/ArrayQueue.js +3 -3
- 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 +1066 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/URLAbsoluteSpecifier.js +3 -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 +10 -2
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/createMappings.js +25 -3
- 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 +4 -0
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +8 -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/removeBOM.js +82 -1
- 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 +43 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +45 -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 +29 -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 +105 -19
- package/lib/web/FetchCompileWasmPlugin.js +48 -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 +32 -25
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +667 -34
- 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 +3223 -465
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
package/lib/css/CssGenerator.js
CHANGED
|
@@ -15,6 +15,7 @@ const {
|
|
|
15
15
|
const { UsageState } = require("../ExportsInfo");
|
|
16
16
|
const Generator = require("../Generator");
|
|
17
17
|
const InitFragment = require("../InitFragment");
|
|
18
|
+
const ModuleFilenameHelpers = require("../ModuleFilenameHelpers");
|
|
18
19
|
const {
|
|
19
20
|
CSS_TEXT_TYPE,
|
|
20
21
|
CSS_TEXT_TYPES,
|
|
@@ -33,50 +34,60 @@ const CssImportDependency = require("../dependencies/CssImportDependency");
|
|
|
33
34
|
const HarmonyImportSideEffectDependency = require("../dependencies/HarmonyImportSideEffectDependency");
|
|
34
35
|
|
|
35
36
|
const { encodeMappings } = require("../util/createMappings");
|
|
36
|
-
const {
|
|
37
|
-
|
|
37
|
+
const {
|
|
38
|
+
contextifySourceUrl,
|
|
39
|
+
makePathsAbsolute
|
|
40
|
+
} = require("../util/identifier");
|
|
41
|
+
const PropertyName = require("../util/property");
|
|
38
42
|
const {
|
|
39
43
|
PUBLIC_PATH_FULL_HASH,
|
|
40
44
|
walkFullHashPlaceholders
|
|
41
45
|
} = require("../util/publicPathPlaceholder");
|
|
46
|
+
const CssModulesPlugin = require("./CssModulesPlugin");
|
|
42
47
|
|
|
43
48
|
// Avoids `type.split("/")[0]` allocation on the `getTypes` hot path.
|
|
44
49
|
const CSS_TYPE_PREFIX = `${CSS_TYPE}/`;
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
/** @
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
/** @
|
|
55
|
-
/** @
|
|
56
|
-
/** @
|
|
57
|
-
/**
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
/** @
|
|
65
|
-
/**
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
51
|
+
const URL_SCHEME_REGEXP = /^(?:data|https?):/;
|
|
52
|
+
|
|
53
|
+
/** @import { Source, RawSourceMap } from "webpack-sources" */
|
|
54
|
+
/**
|
|
55
|
+
* @import {
|
|
56
|
+
* CssModuleGeneratorOptions
|
|
57
|
+
* } from "../../declarations/WebpackOptions"
|
|
58
|
+
*/
|
|
59
|
+
/** @import { DependencyConstructor } from "../Compilation" */
|
|
60
|
+
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
61
|
+
/** @import Dependency from "../Dependency" */
|
|
62
|
+
/**
|
|
63
|
+
* @import {
|
|
64
|
+
* CssData,
|
|
65
|
+
* DependencyTemplateContext,
|
|
66
|
+
* CssDependencyTemplateContext
|
|
67
|
+
* } from "../DependencyTemplate"
|
|
68
|
+
*/
|
|
69
|
+
/** @import { GenerateContext, UpdateHashContext } from "../Generator" */
|
|
70
|
+
/**
|
|
71
|
+
* @import {
|
|
72
|
+
* ConcatenationBailoutReasonContext,
|
|
73
|
+
* SourceType,
|
|
74
|
+
* SourceTypes
|
|
75
|
+
* } from "../Module"
|
|
76
|
+
*/
|
|
77
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
78
|
+
/** @import NormalModule from "../NormalModule" */
|
|
79
|
+
/** @import Hash from "../util/Hash" */
|
|
80
|
+
/** @import { ModuleFactoryCacheEntry } from "./CssModulesPlugin" */
|
|
81
|
+
/**
|
|
82
|
+
* @import CssModule, {
|
|
83
|
+
* CssModuleBuildInfo,
|
|
84
|
+
* CssModuleBuildMeta
|
|
85
|
+
* } from "./CssModule"
|
|
86
|
+
*/
|
|
71
87
|
|
|
72
88
|
/** @typedef {{ line: number, column: number }} SourcePosition */
|
|
73
89
|
/** @typedef {Map<string, SourcePosition>} ExportLocsMap */
|
|
74
90
|
|
|
75
|
-
const getPropertyName = memoize(() => require("../util/property"));
|
|
76
|
-
const getCssModulesPlugin = memoize(() => require("./CssModulesPlugin"));
|
|
77
|
-
|
|
78
|
-
/** @typedef {import("webpack-sources").RawSourceMap} RawSourceMap */
|
|
79
|
-
|
|
80
91
|
/**
|
|
81
92
|
* Build a v3 source map mapping CSS-class export lines back to their selector positions.
|
|
82
93
|
* @param {string} generatedJs the generated JS string
|
|
@@ -304,8 +315,13 @@ class CssGenerator extends Generator {
|
|
|
304
315
|
const generateContentCode = () => {
|
|
305
316
|
switch (exportType) {
|
|
306
317
|
case "style": {
|
|
307
|
-
const
|
|
308
|
-
if (!
|
|
318
|
+
const rendered = this._renderCss(module, generateContext);
|
|
319
|
+
if (!rendered) return "";
|
|
320
|
+
const cssSource = this._renderEmbeddedSource(
|
|
321
|
+
rendered,
|
|
322
|
+
module,
|
|
323
|
+
generateContext
|
|
324
|
+
);
|
|
309
325
|
|
|
310
326
|
generateContext.runtimeRequirements.add(
|
|
311
327
|
RuntimeGlobals.cssInjectStyle
|
|
@@ -421,7 +437,7 @@ class CssGenerator extends Generator {
|
|
|
421
437
|
const source = new ConcatSource();
|
|
422
438
|
/** @type {Set<string>} */
|
|
423
439
|
const usedIdentifiers = new Set();
|
|
424
|
-
const { RESERVED_IDENTIFIER } =
|
|
440
|
+
const { RESERVED_IDENTIFIER } = PropertyName;
|
|
425
441
|
|
|
426
442
|
if (defaultExport) {
|
|
427
443
|
const usedName = getUsedExportName("default");
|
|
@@ -601,9 +617,7 @@ class CssGenerator extends Generator {
|
|
|
601
617
|
generateError(error, module, generateContext) {
|
|
602
618
|
switch (generateContext.type) {
|
|
603
619
|
case JAVASCRIPT_TYPE: {
|
|
604
|
-
return new RawSource(
|
|
605
|
-
`throw new Error(${JSON.stringify(error.message)});`
|
|
606
|
-
);
|
|
620
|
+
return new RawSource(Generator.throwBuildErrorCode(error));
|
|
607
621
|
}
|
|
608
622
|
case CSS_TYPE: {
|
|
609
623
|
return new RawSource(`/**\n ${error.message} \n**/`);
|
|
@@ -740,9 +754,27 @@ class CssGenerator extends Generator {
|
|
|
740
754
|
* @param {Hash} hash hash that will be modified
|
|
741
755
|
* @param {UpdateHashContext} updateHashContext context for updating hash
|
|
742
756
|
*/
|
|
743
|
-
updateHash(hash, { module }) {
|
|
757
|
+
updateHash(hash, { module, runtimeTemplate }) {
|
|
744
758
|
hash.update(/** @type {boolean} */ (this._esModule).toString());
|
|
745
759
|
hash.update(/** @type {boolean} */ (this._exportsOnly).toString());
|
|
760
|
+
// Only a module embedded in JS gets an inlined map, which varies on devtool
|
|
761
|
+
// and its filename options without changing the source. `String`: templates
|
|
762
|
+
// may be functions.
|
|
763
|
+
const exportType = /** @type {CssModule} */ (module).exportType || "link";
|
|
764
|
+
if (runtimeTemplate && exportType !== "link") {
|
|
765
|
+
// What a tap varies on has to reach the key, or a changed option replays.
|
|
766
|
+
runtimeTemplate.compilation.hooks.embeddedSourceHash.call(module, hash);
|
|
767
|
+
const { compilation } = runtimeTemplate;
|
|
768
|
+
const devtool = compilation.options.devtool;
|
|
769
|
+
const outputOptions = compilation.outputOptions;
|
|
770
|
+
hash.update(
|
|
771
|
+
`|${typeof devtool === "string" ? devtool : ""}|${
|
|
772
|
+
outputOptions.devtoolNamespace || ""
|
|
773
|
+
}|${String(outputOptions.devtoolModuleFilenameTemplate || "")}|${String(
|
|
774
|
+
outputOptions.devtoolFallbackModuleFilenameTemplate || ""
|
|
775
|
+
)}`
|
|
776
|
+
);
|
|
777
|
+
}
|
|
746
778
|
}
|
|
747
779
|
|
|
748
780
|
/**
|
|
@@ -873,7 +905,6 @@ class CssGenerator extends Generator {
|
|
|
873
905
|
const compilation = generateContext.runtimeTemplate.compilation;
|
|
874
906
|
const undoPath = "";
|
|
875
907
|
|
|
876
|
-
const CssModulesPlugin = getCssModulesPlugin();
|
|
877
908
|
const hooks = CssModulesPlugin.getCompilationHooks(compilation);
|
|
878
909
|
return CssModulesPlugin.renderModule(
|
|
879
910
|
/** @type {CssModule} */ (module),
|
|
@@ -887,6 +918,88 @@ class CssGenerator extends Generator {
|
|
|
887
918
|
);
|
|
888
919
|
}
|
|
889
920
|
|
|
921
|
+
/**
|
|
922
|
+
* Applies the devtool filename template to the sources of a map that is inlined
|
|
923
|
+
* into the module's own output: `SourceMapDevToolPlugin` only rewrites maps of
|
|
924
|
+
* emitted assets, so this one would keep raw module identifiers.
|
|
925
|
+
* @param {RawSourceMap} map the map to rename the sources of
|
|
926
|
+
* @param {GenerateContext} generateContext the generate context
|
|
927
|
+
* @returns {RawSourceMap} the map with devtool source names
|
|
928
|
+
*/
|
|
929
|
+
_nameMapSources(map, generateContext) {
|
|
930
|
+
const { chunkGraph, runtimeTemplate } = generateContext;
|
|
931
|
+
const { compilation } = runtimeTemplate;
|
|
932
|
+
const outputOptions = compilation.outputOptions;
|
|
933
|
+
const absolutify = makePathsAbsolute.bindContextCache(
|
|
934
|
+
/** @type {string} */ (compilation.options.context),
|
|
935
|
+
compilation.compiler.root
|
|
936
|
+
);
|
|
937
|
+
const options = {
|
|
938
|
+
moduleFilenameTemplate:
|
|
939
|
+
outputOptions.devtoolModuleFilenameTemplate ||
|
|
940
|
+
ModuleFilenameHelpers.DEFAULT_MODULE_FILENAME_TEMPLATE,
|
|
941
|
+
namespace: outputOptions.devtoolNamespace || ""
|
|
942
|
+
};
|
|
943
|
+
const contextInfo = {
|
|
944
|
+
requestShortener: compilation.requestShortener,
|
|
945
|
+
chunkGraph,
|
|
946
|
+
hashFunction: outputOptions.hashFunction
|
|
947
|
+
};
|
|
948
|
+
/** @type {Set<string>} */
|
|
949
|
+
const usedNames = new Set();
|
|
950
|
+
const sources = map.sources.map((source) => {
|
|
951
|
+
if (!source.startsWith("webpack://")) return source;
|
|
952
|
+
const absoluteSource = absolutify(source.slice(10));
|
|
953
|
+
// Sources a loader reported for files that are not modules (e.g. a less
|
|
954
|
+
// partial) are templated as a path, like `SourceMapDevToolPlugin` does
|
|
955
|
+
const module = compilation.findModule(absoluteSource) || absoluteSource;
|
|
956
|
+
if (typeof module === "string" && URL_SCHEME_REGEXP.test(module)) {
|
|
957
|
+
return module;
|
|
958
|
+
}
|
|
959
|
+
let name = ModuleFilenameHelpers.createFilename(
|
|
960
|
+
module,
|
|
961
|
+
options,
|
|
962
|
+
contextInfo
|
|
963
|
+
);
|
|
964
|
+
// Same disambiguation as `SourceMapDevToolPlugin`: modules sharing a
|
|
965
|
+
// resource path (e.g. one file imported under two layers) collide
|
|
966
|
+
if (usedNames.has(name)) {
|
|
967
|
+
name = ModuleFilenameHelpers.createFilename(
|
|
968
|
+
module,
|
|
969
|
+
{
|
|
970
|
+
moduleFilenameTemplate:
|
|
971
|
+
outputOptions.devtoolFallbackModuleFilenameTemplate ||
|
|
972
|
+
ModuleFilenameHelpers.DEFAULT_FALLBACK_MODULE_FILENAME_TEMPLATE,
|
|
973
|
+
namespace: options.namespace
|
|
974
|
+
},
|
|
975
|
+
contextInfo
|
|
976
|
+
);
|
|
977
|
+
while (usedNames.has(name)) name += "*";
|
|
978
|
+
}
|
|
979
|
+
usedNames.add(name);
|
|
980
|
+
return name;
|
|
981
|
+
});
|
|
982
|
+
|
|
983
|
+
return { ...map, sources };
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
/**
|
|
987
|
+
* Offer CSS bound for a JS string literal to `renderEmbeddedSource`. No `.css`
|
|
988
|
+
* asset carries this text, so an asset-level minimizer never sees it.
|
|
989
|
+
* @param {Source} cssSource the CSS source
|
|
990
|
+
* @param {NormalModule} module the module
|
|
991
|
+
* @param {GenerateContext} generateContext the generate context
|
|
992
|
+
* @returns {Source} the source a tap returned, or the original
|
|
993
|
+
*/
|
|
994
|
+
_renderEmbeddedSource(cssSource, module, generateContext) {
|
|
995
|
+
const { compilation } = generateContext.runtimeTemplate;
|
|
996
|
+
return compilation._resolveEmbeddedSource(cssSource, {
|
|
997
|
+
type: CSS_TYPE,
|
|
998
|
+
hostType: JAVASCRIPT_TYPE,
|
|
999
|
+
module
|
|
1000
|
+
});
|
|
1001
|
+
}
|
|
1002
|
+
|
|
890
1003
|
/**
|
|
891
1004
|
* Convert a CSS Source into a JS string literal, splicing `__webpack_require__.h()` for `[fullhash]` placeholders.
|
|
892
1005
|
* @param {Source} cssSource the CSS source
|
|
@@ -897,11 +1010,17 @@ class CssGenerator extends Generator {
|
|
|
897
1010
|
_cssToJsLiteral(cssSource, devtool, generateContext) {
|
|
898
1011
|
const { source, map } = cssSource.sourceAndMap();
|
|
899
1012
|
let content = /** @type {string} */ (source);
|
|
900
|
-
|
|
1013
|
+
// A `renderEmbeddedSource` tap may hand back a mapped source whatever
|
|
1014
|
+
// `devtool` says, so asking for no map at all is checked here too — this
|
|
1015
|
+
// data URI would ship the sources inside the bundle. `hidden` is the same
|
|
1016
|
+
// answer for the same reason.
|
|
1017
|
+
const wanted = typeof devtool === "string" && !devtool.includes("hidden");
|
|
1018
|
+
if (map && wanted) {
|
|
1019
|
+
const namedMap = this._nameMapSources(map, generateContext);
|
|
901
1020
|
const inlineMap =
|
|
902
1021
|
typeof devtool === "string" && devtool.includes("nosources")
|
|
903
|
-
? { ...
|
|
904
|
-
:
|
|
1022
|
+
? { ...namedMap, sourcesContent: undefined }
|
|
1023
|
+
: namedMap;
|
|
905
1024
|
const base64Map = Buffer.from(JSON.stringify(inlineMap), "utf8").toString(
|
|
906
1025
|
"base64"
|
|
907
1026
|
);
|
|
@@ -955,6 +1074,15 @@ class CssGenerator extends Generator {
|
|
|
955
1074
|
result = cssSource;
|
|
956
1075
|
}
|
|
957
1076
|
|
|
1077
|
+
// Only text bound for a JS literal. `CSS_TEXT_TYPE` is an HTML inline
|
|
1078
|
+
// `<style>` / `style=""`, and whether that is CSS at all depends on the
|
|
1079
|
+
// element's `type` — a call the HTML layer makes and `htmlMinify` honors,
|
|
1080
|
+
// which is not visible here. After the `@charset` prefix, so a tap sees a
|
|
1081
|
+
// whole stylesheet.
|
|
1082
|
+
if (result && asJsLiteral) {
|
|
1083
|
+
result = this._renderEmbeddedSource(result, module, generateContext);
|
|
1084
|
+
}
|
|
1085
|
+
|
|
958
1086
|
if (asJsLiteral) {
|
|
959
1087
|
const devtool =
|
|
960
1088
|
generateContext.runtimeTemplate.compilation.options.devtool;
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { SyncWaterfallHook } = require("tapable");
|
|
9
|
-
/** @
|
|
9
|
+
/** @import Compilation from "../Compilation" */
|
|
10
10
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
11
11
|
const RuntimeModule = require("../RuntimeModule");
|
|
12
12
|
const Template = require("../Template");
|
|
13
13
|
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
14
14
|
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
15
|
+
/** @import Chunk from "../Chunk" */
|
|
16
|
+
/** @import { ReadOnlyRuntimeRequirements } from "../Module" */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* @typedef {object} CssInjectCompilationHooks
|
|
@@ -63,7 +63,9 @@ class CssInjectStyleRuntimeModule extends RuntimeModule {
|
|
|
63
63
|
? [
|
|
64
64
|
"if (typeof document === 'undefined') {",
|
|
65
65
|
Template.indent([
|
|
66
|
-
|
|
66
|
+
// "module-" keeps numeric module ids from enumerating in ascending
|
|
67
|
+
// order instead of the order the styles were applied in
|
|
68
|
+
`${runtimeTemplate.cssServerStyleRegistry()}["module-" + identifier] = css;`,
|
|
67
69
|
"return;"
|
|
68
70
|
]),
|
|
69
71
|
"}"
|
|
@@ -74,7 +76,7 @@ class CssInjectStyleRuntimeModule extends RuntimeModule {
|
|
|
74
76
|
"if (typeof document === 'undefined') {",
|
|
75
77
|
Template.indent([
|
|
76
78
|
`${cst} styles = ${runtimeTemplate.cssServerStyleRegistry()};`,
|
|
77
|
-
|
|
79
|
+
'for (var i = 0; i < identifiers.length; i++) delete styles["module-" + identifiers[i]];',
|
|
78
80
|
"return;"
|
|
79
81
|
]),
|
|
80
82
|
"}"
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { SyncWaterfallHook } = require("tapable");
|
|
9
|
-
/** @
|
|
10
|
-
const { CSS_TYPE } = require("../ModuleSourceTypeConstants");
|
|
9
|
+
/** @import Compilation from "../Compilation" */
|
|
11
10
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
12
11
|
const RuntimeModule = require("../RuntimeModule");
|
|
13
12
|
const Template = require("../Template");
|
|
@@ -15,10 +14,8 @@ const compileBooleanMatcher = require("../util/compileBooleanMatcher");
|
|
|
15
14
|
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
16
15
|
const { chunkHasCss } = require("./CssModulesPlugin");
|
|
17
16
|
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
21
|
-
/** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
|
|
17
|
+
/** @import Chunk, { ChunkId } from "../Chunk" */
|
|
18
|
+
/** @import { ReadOnlyRuntimeRequirements } from "../Module" */
|
|
22
19
|
|
|
23
20
|
const createCompilationHooks = () => ({
|
|
24
21
|
/**
|
|
@@ -74,21 +71,31 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
74
71
|
uniqueName,
|
|
75
72
|
chunkLoadTimeout: loadTimeout,
|
|
76
73
|
charset,
|
|
77
|
-
|
|
74
|
+
resourceHints
|
|
78
75
|
}
|
|
79
76
|
} = compilation;
|
|
77
|
+
const dedupePrefetch = Boolean(resourceHints && resourceHints.dedupe);
|
|
80
78
|
const fn = RuntimeGlobals.ensureChunkHandlers;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
);
|
|
91
|
-
|
|
79
|
+
/** @type {Set<ChunkId>} */
|
|
80
|
+
const initialChunkIds = new Set();
|
|
81
|
+
for (const c of chunk.getAllInitialChunks()) {
|
|
82
|
+
if (chunkHasCss(c, chunkGraph)) {
|
|
83
|
+
initialChunkIds.add(/** @type {ChunkId} */ (c.id));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// The predicate the stylesheet is emitted from: an `@import` external gives a
|
|
87
|
+
// chunk a css asset without a `CSS_TYPE` module, and it still has to load.
|
|
88
|
+
const conditionMap = chunkGraph.getChunkConditionMap(chunk, chunkHasCss);
|
|
89
|
+
// An initial chunk is installed before the handler can run, so it never
|
|
90
|
+
// reaches the loading path — with no other one there is nothing to load.
|
|
91
|
+
const loadableConditionMap = { ...conditionMap };
|
|
92
|
+
for (const id of initialChunkIds) {
|
|
93
|
+
loadableConditionMap[id] = false;
|
|
94
|
+
}
|
|
95
|
+
const hasCssMatcher =
|
|
96
|
+
compileBooleanMatcher(loadableConditionMap) === false
|
|
97
|
+
? false
|
|
98
|
+
: compileBooleanMatcher(conditionMap);
|
|
92
99
|
|
|
93
100
|
const withLoading =
|
|
94
101
|
_runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers) &&
|
|
@@ -97,13 +104,6 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
97
104
|
const withHmr = _runtimeRequirements.has(
|
|
98
105
|
RuntimeGlobals.hmrDownloadUpdateHandlers
|
|
99
106
|
);
|
|
100
|
-
/** @type {Set<ChunkId>} */
|
|
101
|
-
const initialChunkIds = new Set();
|
|
102
|
-
for (const c of chunk.getAllInitialChunks()) {
|
|
103
|
-
if (chunkHasCss(c, chunkGraph)) {
|
|
104
|
-
initialChunkIds.add(/** @type {ChunkId} */ (c.id));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
107
|
|
|
108
108
|
if (!withLoading && !withHmr) {
|
|
109
109
|
return null;
|
|
@@ -122,6 +122,15 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
122
122
|
// `parser.javascript.dynamicImportCssPreload` — CSS-only preload order.
|
|
123
123
|
chunk.hasChildByOrder(chunkGraph, "cssPreload", true, chunkHasCss));
|
|
124
124
|
|
|
125
|
+
// Under module output each stylesheet is a known file, so the urls are written
|
|
126
|
+
// out and read by id rather than built from the chunk id at runtime.
|
|
127
|
+
const cssUrls = runtimeTemplate.analyzableCssChunkUrls(
|
|
128
|
+
chunk,
|
|
129
|
+
chunkGraph,
|
|
130
|
+
_runtimeRequirements,
|
|
131
|
+
this
|
|
132
|
+
);
|
|
133
|
+
|
|
125
134
|
const { linkPreload, linkPrefetch, createStylesheet, linkInsert } =
|
|
126
135
|
CssLoadingRuntimeModule.getCompilationHooks(compilation);
|
|
127
136
|
|
|
@@ -176,7 +185,38 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
176
185
|
",\n"
|
|
177
186
|
)
|
|
178
187
|
)}\n}`;
|
|
188
|
+
/**
|
|
189
|
+
* @param {string} id expression naming the chunk whose stylesheet is wanted
|
|
190
|
+
* @returns {string} expression building its url at runtime
|
|
191
|
+
*/
|
|
192
|
+
const runtimeCssUrl = (id) =>
|
|
193
|
+
`${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkCssFilename}(${id})`;
|
|
194
|
+
// The url is read through a thunk so a runtime carrying many stylesheets builds
|
|
195
|
+
// only the one it loads.
|
|
196
|
+
/**
|
|
197
|
+
* @param {string} id expression naming the chunk whose stylesheet is wanted
|
|
198
|
+
* @returns {string} expression evaluating to its url
|
|
199
|
+
*/
|
|
200
|
+
const cssUrl = (id) => {
|
|
201
|
+
if (!cssUrls) return runtimeCssUrl(id);
|
|
202
|
+
// An id the incomplete map lacks still resolves through the runtime lookup,
|
|
203
|
+
// which the plugin kept required for exactly this case.
|
|
204
|
+
return cssUrls.complete
|
|
205
|
+
? `cssUrls[${id}]()`
|
|
206
|
+
: `(cssUrls[${id}] ? cssUrls[${id}]() : ${runtimeCssUrl(id)})`;
|
|
207
|
+
};
|
|
179
208
|
return Template.asString([
|
|
209
|
+
...(cssUrls
|
|
210
|
+
? [
|
|
211
|
+
`${cst} cssUrls = {\n${Template.indent(
|
|
212
|
+
Array.from(
|
|
213
|
+
cssUrls.urls,
|
|
214
|
+
([id, url]) =>
|
|
215
|
+
`${JSON.stringify(String(id))}: ${runtimeTemplate.returningFunction(url)}`
|
|
216
|
+
).join(",\n")
|
|
217
|
+
)}\n};`
|
|
218
|
+
]
|
|
219
|
+
: []),
|
|
180
220
|
"// object to store loaded and loading chunks",
|
|
181
221
|
"// undefined = chunk not loaded, null = chunk preloaded/prefetched",
|
|
182
222
|
"// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded",
|
|
@@ -296,7 +336,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
296
336
|
"promises.push(installedChunkData[2] = promise);",
|
|
297
337
|
"",
|
|
298
338
|
"// start chunk loading",
|
|
299
|
-
`${cst} url = ${
|
|
339
|
+
`${cst} url = ${cssUrl("chunkId")};`,
|
|
300
340
|
"// create error before stack unwound to get useful stacktrace later",
|
|
301
341
|
`${cst} error = new Error();`,
|
|
302
342
|
`${cst} loadingEnded = ${runtimeTemplate.basicFunction(
|
|
@@ -347,7 +387,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
347
387
|
`Promise.all([import('fs'), import('url')]).then(${runtimeTemplate.basicFunction(
|
|
348
388
|
"[{ readFile }, { URL }]",
|
|
349
389
|
[
|
|
350
|
-
`readFile(
|
|
390
|
+
`readFile(${runtimeTemplate.importMetaUrl("url")}, 'utf8', ${runtimeTemplate.basicFunction(
|
|
351
391
|
"err, content",
|
|
352
392
|
[
|
|
353
393
|
`if (!err) ${runtimeTemplate.cssServerStyleRegistry()}["chunk-" + chunkId] = content;`,
|
|
@@ -402,10 +442,23 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
402
442
|
"}",
|
|
403
443
|
'link.rel = "prefetch";',
|
|
404
444
|
'link.as = "style";',
|
|
405
|
-
`link.href = ${
|
|
445
|
+
`link.href = ${cssUrl("chunkId")};`
|
|
406
446
|
]),
|
|
407
447
|
chunk
|
|
408
448
|
),
|
|
449
|
+
dedupePrefetch
|
|
450
|
+
? Template.asString([
|
|
451
|
+
// Chrome re-requests a resource when a prefetch link is added
|
|
452
|
+
// after it was already (pre)loaded via markup; skip in that case.
|
|
453
|
+
`${cst} links = document.getElementsByTagName("link");`,
|
|
454
|
+
`for(${lt} i = 0; i < links.length; i++) {`,
|
|
455
|
+
Template.indent([
|
|
456
|
+
`${cst} l = links[i];`,
|
|
457
|
+
'if(l.href === link.href && (l.rel === "prefetch" || l.rel === "preload")) return;'
|
|
458
|
+
]),
|
|
459
|
+
"}"
|
|
460
|
+
])
|
|
461
|
+
: "",
|
|
409
462
|
"document.head.appendChild(link);"
|
|
410
463
|
]),
|
|
411
464
|
"}"
|
|
@@ -438,7 +491,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
438
491
|
"}",
|
|
439
492
|
'link.rel = "preload";',
|
|
440
493
|
'link.as = "style";',
|
|
441
|
-
`link.href = ${
|
|
494
|
+
`link.href = ${cssUrl("chunkId")};`,
|
|
442
495
|
crossOriginLoading
|
|
443
496
|
? crossOriginLoading === "use-credentials"
|
|
444
497
|
? 'link.crossOrigin = "use-credentials";'
|
|
@@ -518,7 +571,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
518
571
|
// best-effort: a non-file publicPath (e.g. a CDN) can't be read from disk, so skip
|
|
519
572
|
"try {",
|
|
520
573
|
Template.indent([
|
|
521
|
-
`readFile(
|
|
574
|
+
`readFile(${runtimeTemplate.importMetaUrl("url")}, 'utf8', ${runtimeTemplate.basicFunction(
|
|
522
575
|
"err, content",
|
|
523
576
|
[
|
|
524
577
|
"if (!err) registry[key] = content;",
|
|
@@ -542,8 +595,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
542
595
|
"// Read CSS removed chunks from update manifest",
|
|
543
596
|
`${cst} cssRemovedChunks = css && css.r;`,
|
|
544
597
|
`chunkIds.forEach(${runtimeTemplate.basicFunction("chunkId", [
|
|
545
|
-
`${cst}
|
|
546
|
-
`${cst} url = ${RuntimeGlobals.publicPath} + filename;`,
|
|
598
|
+
`${cst} url = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkCssFilename}(chunkId);`,
|
|
547
599
|
`${cst} oldTag = loadStylesheet(chunkId, url);`,
|
|
548
600
|
`if(!oldTag && !${withHmr} ) return;`,
|
|
549
601
|
"// Skip if CSS was removed",
|
package/lib/css/CssModule.js
CHANGED
|
@@ -8,15 +8,18 @@
|
|
|
8
8
|
const NormalModule = require("../NormalModule");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
/** @import { CssData } from "../DependencyTemplate" */
|
|
12
|
+
/** @import Module, { BuildMeta } from "../Module" */
|
|
13
|
+
/**
|
|
14
|
+
* @import {
|
|
15
|
+
* NormalModuleBuildInfo,
|
|
16
|
+
* NormalModuleCreateData
|
|
17
|
+
* } from "../NormalModule"
|
|
18
|
+
*/
|
|
19
|
+
/** @import RequestShortener from "../RequestShortener" */
|
|
17
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[CssLayer, Supports, Media, Inheritance | undefined, CssParserExportType | undefined]>} ObjectDeserializerContext */
|
|
18
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[CssLayer, Supports, Media, Inheritance | undefined, CssParserExportType | undefined]>} ObjectSerializerContext */
|
|
19
|
-
/** @
|
|
22
|
+
/** @import { CssParserExportType } from "../../declarations/WebpackOptions" */
|
|
20
23
|
|
|
21
24
|
/** @typedef {string | undefined} CssLayer */
|
|
22
25
|
/** @typedef {string | undefined} Supports */
|