webpack 5.99.8 → 5.100.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 +0 -3
- package/bin/webpack.js +8 -2
- package/hot/log.js +15 -15
- package/hot/poll.js +1 -0
- package/lib/APIPlugin.js +3 -3
- package/lib/AbstractMethodError.js +1 -0
- package/lib/AutomaticPrefetchPlugin.js +1 -0
- package/lib/BannerPlugin.js +1 -1
- package/lib/CacheFacade.js +2 -1
- package/lib/CaseSensitiveModulesWarning.js +4 -4
- package/lib/Chunk.js +6 -6
- package/lib/ChunkGraph.js +37 -32
- package/lib/ChunkGroup.js +17 -10
- package/lib/ChunkTemplate.js +1 -1
- package/lib/CleanPlugin.js +94 -17
- package/lib/CodeGenerationResults.js +1 -1
- package/lib/CompatibilityPlugin.js +5 -2
- package/lib/Compilation.js +77 -71
- package/lib/Compiler.js +46 -16
- package/lib/ConcatenationScope.js +15 -6
- package/lib/ConstPlugin.js +65 -45
- package/lib/ContextModule.js +16 -12
- package/lib/ContextModuleFactory.js +4 -3
- package/lib/ContextReplacementPlugin.js +4 -2
- package/lib/CssModule.js +2 -3
- package/lib/DefinePlugin.js +111 -3
- package/lib/DelegatedModuleFactoryPlugin.js +18 -18
- package/lib/Dependency.js +16 -12
- package/lib/DependencyTemplate.js +1 -0
- package/lib/DllEntryPlugin.js +3 -1
- package/lib/DllPlugin.js +4 -3
- package/lib/DllReferencePlugin.js +2 -2
- package/lib/DynamicEntryPlugin.js +1 -1
- package/lib/EntryOptionPlugin.js +5 -0
- package/lib/ErrorHelpers.js +4 -4
- package/lib/EvalDevToolModulePlugin.js +3 -3
- package/lib/EvalSourceMapDevToolPlugin.js +7 -7
- package/lib/ExportsInfo.js +48 -39
- package/lib/ExternalModule.js +15 -11
- package/lib/ExternalModuleFactoryPlugin.js +5 -2
- package/lib/FileSystemInfo.js +51 -38
- package/lib/FlagDependencyExportsPlugin.js +14 -7
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +14 -1
- package/lib/HookWebpackError.js +1 -0
- package/lib/HotModuleReplacementPlugin.js +77 -50
- package/lib/IgnorePlugin.js +1 -1
- package/lib/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/JavascriptMetaInfoPlugin.js +0 -1
- package/lib/LibManifestPlugin.js +4 -2
- package/lib/LoaderOptionsPlugin.js +6 -4
- package/lib/MainTemplate.js +2 -2
- package/lib/Module.js +21 -6
- package/lib/ModuleFactory.js +1 -0
- package/lib/ModuleGraph.js +24 -2
- package/lib/ModuleGraphConnection.js +5 -5
- package/lib/ModuleInfoHeaderPlugin.js +2 -1
- package/lib/ModuleParseError.js +1 -0
- package/lib/ModuleSourceTypesConstants.js +12 -12
- package/lib/ModuleTemplate.js +1 -1
- package/lib/ModuleTypeConstants.js +21 -21
- package/lib/MultiCompiler.js +6 -6
- package/lib/NormalModule.js +61 -56
- package/lib/NormalModuleFactory.js +52 -37
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptimizationStages.js +1 -1
- package/lib/Parser.js +1 -0
- package/lib/ProgressPlugin.js +12 -5
- package/lib/ProvidePlugin.js +5 -1
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RuntimeGlobals.js +175 -155
- package/lib/RuntimeModule.js +1 -0
- package/lib/RuntimePlugin.js +34 -8
- package/lib/RuntimeTemplate.js +111 -11
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +15 -25
- package/lib/SourceMapDevToolPlugin.js +19 -17
- package/lib/Template.js +2 -2
- package/lib/TemplatedPathPlugin.js +1 -1
- package/lib/WarnDeprecatedOptionPlugin.js +7 -8
- package/lib/WatchIgnorePlugin.js +4 -3
- package/lib/WebpackIsIncludedPlugin.js +2 -1
- package/lib/WebpackOptionsApply.js +115 -27
- package/lib/asset/AssetGenerator.js +26 -21
- package/lib/asset/AssetModulesPlugin.js +19 -17
- package/lib/asset/AssetSourceGenerator.js +11 -9
- package/lib/asset/RawDataUrlModule.js +4 -2
- package/lib/async-modules/AwaitDependenciesInitFragment.js +1 -1
- package/lib/buildChunkGraph.js +6 -3
- package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
- package/lib/cache/IdleFileCachePlugin.js +7 -4
- package/lib/cache/MemoryCachePlugin.js +1 -0
- package/lib/cache/MemoryWithGcCachePlugin.js +1 -0
- package/lib/cache/PackFileCacheStrategy.js +26 -20
- package/lib/cache/ResolverCachePlugin.js +16 -8
- package/lib/cli.js +15 -10
- package/lib/config/browserslistTargetHandler.js +3 -3
- package/lib/config/defaults.js +25 -17
- package/lib/config/normalization.js +2 -1
- package/lib/config/target.js +6 -5
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackModule.js +2 -1
- package/lib/container/HoistContainerReferencesPlugin.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -2
- package/lib/container/RemoteModule.js +1 -1
- package/lib/css/CssGenerator.js +9 -6
- package/lib/css/CssModulesPlugin.js +44 -31
- package/lib/css/CssParser.js +6 -4
- package/lib/css/walkCssTokens.js +33 -37
- package/lib/debug/ProfilingPlugin.js +6 -6
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +8 -8
- package/lib/dependencies/AMDPlugin.js +12 -8
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -26
- package/lib/dependencies/CachedConstDependency.js +1 -5
- package/lib/dependencies/CommonJsExportRequireDependency.js +6 -4
- package/lib/dependencies/CommonJsExportsParserPlugin.js +22 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -114
- package/lib/dependencies/CommonJsPlugin.js +15 -16
- package/lib/dependencies/ContextDependencyHelpers.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/CssIcssExportDependency.js +1 -1
- package/lib/dependencies/CssLocalIdentifierDependency.js +2 -2
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +9 -9
- package/lib/dependencies/ExportsInfoDependency.js +1 -1
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +122 -101
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +95 -19
- package/lib/dependencies/HarmonyExportInitFragment.js +1 -1
- package/lib/dependencies/HarmonyImportDependency.js +11 -5
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +238 -162
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +20 -9
- package/lib/dependencies/HarmonyModulesPlugin.js +23 -12
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaPlugin.js +2 -2
- package/lib/dependencies/ImportParserPlugin.js +40 -9
- package/lib/dependencies/ImportPlugin.js +3 -1
- package/lib/dependencies/LoaderPlugin.js +1 -0
- package/lib/dependencies/ModuleDependency.js +1 -1
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +3 -1
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
- package/lib/dependencies/RequireIncludePlugin.js +1 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLContextDependency.js +65 -0
- package/lib/dependencies/URLDependency.js +1 -1
- package/lib/dependencies/URLPlugin.js +17 -157
- package/lib/dependencies/WorkerPlugin.js +23 -10
- package/lib/dependencies/processExportInfo.js +2 -1
- package/lib/esm/ModuleChunkFormatPlugin.js +269 -185
- package/lib/esm/ModuleChunkLoadingPlugin.js +39 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +73 -6
- package/lib/hmr/HotModuleReplacement.runtime.js +0 -1
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
- package/lib/hmr/LazyCompilationPlugin.js +4 -2
- package/lib/hmr/lazyCompilationBackend.js +4 -2
- package/lib/ids/ChunkModuleIdRangePlugin.js +6 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +30 -35
- package/lib/ids/DeterministicModuleIdsPlugin.js +4 -3
- package/lib/ids/HashedModuleIdsPlugin.js +5 -4
- package/lib/ids/IdHelpers.js +21 -17
- package/lib/ids/NamedChunkIdsPlugin.js +5 -5
- package/lib/ids/NamedModuleIdsPlugin.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +3 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +1 -1
- package/lib/ids/SyncModuleIdsPlugin.js +1 -1
- package/lib/index.js +13 -3
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +113 -119
- package/lib/javascript/BasicEvaluatedExpression.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +121 -136
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -3
- package/lib/javascript/JavascriptGenerator.js +14 -2
- package/lib/javascript/JavascriptModulesPlugin.js +68 -27
- package/lib/javascript/JavascriptParser.js +136 -81
- package/lib/javascript/JavascriptParserHelpers.js +41 -41
- package/lib/javascript/StartupHelpers.js +17 -17
- package/lib/json/JsonGenerator.js +4 -2
- package/lib/json/JsonModulesPlugin.js +2 -2
- package/lib/json/JsonParser.js +1 -1
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AssignLibraryPlugin.js +21 -6
- package/lib/library/EnableLibraryPlugin.js +23 -3
- package/lib/library/ModuleLibraryPlugin.js +4 -1
- package/lib/library/UmdLibraryPlugin.js +15 -6
- package/lib/logging/createConsoleLogger.js +3 -3
- package/lib/logging/runtime.js +9 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +4 -22
- package/lib/node/RequireChunkLoadingRuntimeModule.js +4 -22
- package/lib/node/nodeConsole.js +4 -2
- package/lib/optimize/AggressiveMergingPlugin.js +45 -46
- package/lib/optimize/AggressiveSplittingPlugin.js +13 -12
- package/lib/optimize/ConcatenatedModule.js +227 -57
- package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -1
- package/lib/optimize/InnerGraph.js +115 -112
- package/lib/optimize/InnerGraphPlugin.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +4 -2
- package/lib/optimize/MangleExportsPlugin.js +4 -3
- package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
- package/lib/optimize/MinChunkSizePlugin.js +6 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +31 -22
- package/lib/optimize/RealContentHashPlugin.js +26 -20
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +1 -0
- package/lib/optimize/SideEffectsFlagPlugin.js +6 -3
- package/lib/optimize/SplitChunksPlugin.js +16 -13
- package/lib/rules/BasicEffectRulePlugin.js +4 -2
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -1
- package/lib/rules/RuleSetCompiler.js +7 -4
- package/lib/rules/UseEffectRulePlugin.js +3 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +64 -9
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +214 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +8 -7
- package/lib/schemes/DataUriPlugin.js +3 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +27 -19
- package/lib/schemes/VirtualUrlPlugin.js +222 -0
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +5 -4
- package/lib/serialization/FileMiddleware.js +7 -4
- package/lib/serialization/ObjectMiddleware.js +14 -8
- package/lib/serialization/Serializer.js +5 -3
- package/lib/serialization/SerializerMiddleware.js +2 -0
- package/lib/sharing/ConsumeSharedModule.js +1 -1
- package/lib/sharing/ConsumeSharedPlugin.js +3 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +2 -2
- package/lib/sharing/ProvideSharedModule.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +6 -3
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +3 -5
- package/lib/sharing/utils.js +34 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +49 -46
- package/lib/stats/DefaultStatsPresetPlugin.js +4 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +28 -22
- package/lib/stats/StatsFactory.js +4 -2
- package/lib/stats/StatsPrinter.js +3 -2
- package/lib/url/URLParserPlugin.js +266 -0
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +1 -1
- package/lib/util/Hash.js +2 -0
- package/lib/util/IterableHelpers.js +1 -1
- package/lib/util/LazyBucketSortedSet.js +2 -1
- package/lib/util/LazySet.js +11 -6
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/SetHelpers.js +3 -3
- package/lib/util/SortableSet.js +2 -2
- package/lib/util/StackedCacheMap.js +3 -1
- package/lib/util/StackedMap.js +2 -2
- package/lib/util/StringXor.js +1 -0
- package/lib/util/TupleSet.js +1 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -1
- package/lib/util/cleverMerge.js +12 -8
- package/lib/util/comparators.js +154 -127
- package/lib/util/compileBooleanMatcher.js +8 -3
- package/lib/util/concatenate.js +8 -7
- package/lib/util/conventions.js +72 -73
- package/lib/util/create-schema-validation.js +2 -1
- package/lib/util/createHash.js +10 -4
- package/lib/util/deprecation.js +69 -66
- package/lib/util/deterministicGrouping.js +4 -2
- package/lib/util/extractUrlAndGlobal.js +1 -1
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +30 -23
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +4 -2
- package/lib/util/identifier.js +13 -12
- package/lib/util/internalSerializables.js +2 -0
- package/lib/util/magicComment.js +5 -5
- package/lib/util/processAsyncTree.js +1 -1
- package/lib/util/propertyAccess.js +1 -1
- package/lib/util/propertyName.js +1 -1
- package/lib/util/registerExternalSerializer.js +1 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +29 -21
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +3 -0
- package/lib/util/source.js +3 -2
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +6 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +4 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +46 -49
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +2 -3
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +3 -2
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +3 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +4 -22
- package/lib/webpack.js +4 -5
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +1 -0
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -24
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
- package/package.json +121 -114
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
- package/types.d.ts +1261 -366
|
@@ -22,7 +22,7 @@ const makePathsRelative = require("./util/identifier").makePathsRelative;
|
|
|
22
22
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
|
23
23
|
|
|
24
24
|
const validate = createSchemaValidation(
|
|
25
|
-
require("../schemas/plugins/DllReferencePlugin.check
|
|
25
|
+
require("../schemas/plugins/DllReferencePlugin.check"),
|
|
26
26
|
() => require("../schemas/plugins/DllReferencePlugin.json"),
|
|
27
27
|
{
|
|
28
28
|
name: "Dll Reference Plugin",
|
|
@@ -78,7 +78,7 @@ class DllReferencePlugin {
|
|
|
78
78
|
// or malformed manifest files don't kill the process.
|
|
79
79
|
try {
|
|
80
80
|
data.data = parseJson(
|
|
81
|
-
/** @type {Buffer} */ (result).toString("
|
|
81
|
+
/** @type {Buffer} */ (result).toString("utf8")
|
|
82
82
|
);
|
|
83
83
|
} catch (parseErr) {
|
|
84
84
|
// Store the error in the params so that it can
|
package/lib/EntryOptionPlugin.js
CHANGED
|
@@ -33,9 +33,11 @@ class EntryOptionPlugin {
|
|
|
33
33
|
static applyEntryOption(compiler, context, entry) {
|
|
34
34
|
if (typeof entry === "function") {
|
|
35
35
|
const DynamicEntryPlugin = require("./DynamicEntryPlugin");
|
|
36
|
+
|
|
36
37
|
new DynamicEntryPlugin(context, entry).apply(compiler);
|
|
37
38
|
} else {
|
|
38
39
|
const EntryPlugin = require("./EntryPlugin");
|
|
40
|
+
|
|
39
41
|
for (const name of Object.keys(entry)) {
|
|
40
42
|
const desc = entry[name];
|
|
41
43
|
const options = EntryOptionPlugin.entryDescriptionToOptions(
|
|
@@ -81,14 +83,17 @@ class EntryOptionPlugin {
|
|
|
81
83
|
}
|
|
82
84
|
if (desc.chunkLoading) {
|
|
83
85
|
const EnableChunkLoadingPlugin = require("./javascript/EnableChunkLoadingPlugin");
|
|
86
|
+
|
|
84
87
|
EnableChunkLoadingPlugin.checkEnabled(compiler, desc.chunkLoading);
|
|
85
88
|
}
|
|
86
89
|
if (desc.wasmLoading) {
|
|
87
90
|
const EnableWasmLoadingPlugin = require("./wasm/EnableWasmLoadingPlugin");
|
|
91
|
+
|
|
88
92
|
EnableWasmLoadingPlugin.checkEnabled(compiler, desc.wasmLoading);
|
|
89
93
|
}
|
|
90
94
|
if (desc.library) {
|
|
91
95
|
const EnableLibraryPlugin = require("./library/EnableLibraryPlugin");
|
|
96
|
+
|
|
92
97
|
EnableLibraryPlugin.checkEnabled(compiler, desc.library.type);
|
|
93
98
|
}
|
|
94
99
|
return options;
|
package/lib/ErrorHelpers.js
CHANGED
|
@@ -91,10 +91,10 @@ const cleanUpWebpackOptions = (stack, message) => {
|
|
|
91
91
|
return stack;
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
+
module.exports.cleanUp = cleanUp;
|
|
95
|
+
module.exports.cleanUpWebpackOptions = cleanUpWebpackOptions;
|
|
94
96
|
module.exports.cutOffByFlag = cutOffByFlag;
|
|
95
97
|
module.exports.cutOffLoaderExecution = cutOffLoaderExecution;
|
|
96
|
-
module.exports.cutOffWebpackOptions = cutOffWebpackOptions;
|
|
97
|
-
module.exports.cutOffMultilineMessage = cutOffMultilineMessage;
|
|
98
98
|
module.exports.cutOffMessage = cutOffMessage;
|
|
99
|
-
module.exports.
|
|
100
|
-
module.exports.
|
|
99
|
+
module.exports.cutOffMultilineMessage = cutOffMultilineMessage;
|
|
100
|
+
module.exports.cutOffWebpackOptions = cutOffWebpackOptions;
|
|
@@ -95,9 +95,9 @@ class EvalDevToolModulePlugin {
|
|
|
95
95
|
`eval(${
|
|
96
96
|
compilation.outputOptions.trustedTypes
|
|
97
97
|
? `${RuntimeGlobals.createScript}(${JSON.stringify(
|
|
98
|
-
content + footer
|
|
98
|
+
`{${content + footer}\n}`
|
|
99
99
|
)})`
|
|
100
|
-
: JSON.stringify(content + footer)
|
|
100
|
+
: JSON.stringify(`{${content + footer}\n}`)
|
|
101
101
|
});`
|
|
102
102
|
);
|
|
103
103
|
cache.set(source, result);
|
|
@@ -119,7 +119,7 @@ class EvalDevToolModulePlugin {
|
|
|
119
119
|
if (compilation.outputOptions.trustedTypes) {
|
|
120
120
|
compilation.hooks.additionalModuleRuntimeRequirements.tap(
|
|
121
121
|
PLUGIN_NAME,
|
|
122
|
-
(module, set,
|
|
122
|
+
(module, set, _context) => {
|
|
123
123
|
set.add(RuntimeGlobals.createScript);
|
|
124
124
|
}
|
|
125
125
|
);
|
|
@@ -15,12 +15,12 @@ const ConcatenatedModule = require("./optimize/ConcatenatedModule");
|
|
|
15
15
|
const generateDebugId = require("./util/generateDebugId");
|
|
16
16
|
const { makePathsAbsolute } = require("./util/identifier");
|
|
17
17
|
|
|
18
|
+
/** @typedef {import("webpack-sources").RawSourceMap} RawSourceMap */
|
|
18
19
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
19
20
|
/** @typedef {import("../declarations/WebpackOptions").DevTool} DevToolOptions */
|
|
20
21
|
/** @typedef {import("../declarations/plugins/SourceMapDevToolPlugin").SourceMapDevToolPluginOptions} SourceMapDevToolPluginOptions */
|
|
21
22
|
/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
|
|
22
23
|
/** @typedef {import("./Compiler")} Compiler */
|
|
23
|
-
/** @typedef {import("./NormalModule").SourceMap} SourceMap */
|
|
24
24
|
|
|
25
25
|
/** @type {WeakMap<Source, Source>} */
|
|
26
26
|
const cache = new WeakMap();
|
|
@@ -117,15 +117,15 @@ class EvalSourceMapDevToolPlugin {
|
|
|
117
117
|
const namespace = compilation.getPath(this.namespace, {
|
|
118
118
|
chunk
|
|
119
119
|
});
|
|
120
|
-
/** @type {
|
|
120
|
+
/** @type {RawSourceMap} */
|
|
121
121
|
let sourceMap;
|
|
122
122
|
let content;
|
|
123
123
|
if (source.sourceAndMap) {
|
|
124
124
|
const sourceAndMap = source.sourceAndMap(options);
|
|
125
|
-
sourceMap = /** @type {
|
|
125
|
+
sourceMap = /** @type {RawSourceMap} */ (sourceAndMap.map);
|
|
126
126
|
content = sourceAndMap.source;
|
|
127
127
|
} else {
|
|
128
|
-
sourceMap = /** @type {
|
|
128
|
+
sourceMap = /** @type {RawSourceMap} */ (source.map(options));
|
|
129
129
|
content = source.source();
|
|
130
130
|
}
|
|
131
131
|
if (!sourceMap) {
|
|
@@ -191,16 +191,16 @@ class EvalSourceMapDevToolPlugin {
|
|
|
191
191
|
`eval(${
|
|
192
192
|
compilation.outputOptions.trustedTypes
|
|
193
193
|
? `${RuntimeGlobals.createScript}(${JSON.stringify(
|
|
194
|
-
content + footer
|
|
194
|
+
`{${content + footer}\n}`
|
|
195
195
|
)})`
|
|
196
|
-
: JSON.stringify(content + footer)
|
|
196
|
+
: JSON.stringify(`{${content + footer}\n}`)
|
|
197
197
|
});`
|
|
198
198
|
)
|
|
199
199
|
);
|
|
200
200
|
}
|
|
201
201
|
);
|
|
202
202
|
hooks.inlineInRuntimeBailout.tap(
|
|
203
|
-
|
|
203
|
+
PLUGIN_NAME,
|
|
204
204
|
() => "the eval-source-map devtool is used."
|
|
205
205
|
);
|
|
206
206
|
hooks.render.tap(
|
package/lib/ExportsInfo.js
CHANGED
|
@@ -159,8 +159,9 @@ class ExportsInfo {
|
|
|
159
159
|
* @returns {ExportInfo} the export info of unlisted exports
|
|
160
160
|
*/
|
|
161
161
|
get otherExportsInfo() {
|
|
162
|
-
if (this._redirectTo !== undefined)
|
|
162
|
+
if (this._redirectTo !== undefined) {
|
|
163
163
|
return this._redirectTo.otherExportsInfo;
|
|
164
|
+
}
|
|
164
165
|
return this._otherExportsInfo;
|
|
165
166
|
}
|
|
166
167
|
|
|
@@ -259,8 +260,9 @@ class ExportsInfo {
|
|
|
259
260
|
getExportInfo(name) {
|
|
260
261
|
const info = this._exports.get(name);
|
|
261
262
|
if (info !== undefined) return info;
|
|
262
|
-
if (this._redirectTo !== undefined)
|
|
263
|
+
if (this._redirectTo !== undefined) {
|
|
263
264
|
return this._redirectTo.getExportInfo(name);
|
|
265
|
+
}
|
|
264
266
|
const newInfo = new ExportInfo(name, this._otherExportsInfo);
|
|
265
267
|
this._exports.set(name, newInfo);
|
|
266
268
|
this._exportsAreOrdered = false;
|
|
@@ -274,8 +276,9 @@ class ExportsInfo {
|
|
|
274
276
|
getReadOnlyExportInfo(name) {
|
|
275
277
|
const info = this._exports.get(name);
|
|
276
278
|
if (info !== undefined) return info;
|
|
277
|
-
if (this._redirectTo !== undefined)
|
|
279
|
+
if (this._redirectTo !== undefined) {
|
|
278
280
|
return this._redirectTo.getReadOnlyExportInfo(name);
|
|
281
|
+
}
|
|
279
282
|
return this._otherExportsInfo;
|
|
280
283
|
}
|
|
281
284
|
|
|
@@ -494,8 +497,9 @@ class ExportsInfo {
|
|
|
494
497
|
*/
|
|
495
498
|
isModuleUsed(runtime) {
|
|
496
499
|
if (this.isUsed(runtime)) return true;
|
|
497
|
-
if (this._sideEffectsOnlyInfo.getUsed(runtime) !== UsageState.Unused)
|
|
500
|
+
if (this._sideEffectsOnlyInfo.getUsed(runtime) !== UsageState.Unused) {
|
|
498
501
|
return true;
|
|
502
|
+
}
|
|
499
503
|
return false;
|
|
500
504
|
}
|
|
501
505
|
|
|
@@ -504,17 +508,15 @@ class ExportsInfo {
|
|
|
504
508
|
* @returns {SortableSet<string> | boolean | null} set of used exports, or true (when namespace object is used), or false (when unused), or null (when unknown)
|
|
505
509
|
*/
|
|
506
510
|
getUsedExports(runtime) {
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
case UsageState.Used:
|
|
515
|
-
return true;
|
|
516
|
-
}
|
|
511
|
+
switch (this._otherExportsInfo.getUsed(runtime)) {
|
|
512
|
+
case UsageState.NoInfo:
|
|
513
|
+
return null;
|
|
514
|
+
case UsageState.Unknown:
|
|
515
|
+
case UsageState.OnlyPropertiesUsed:
|
|
516
|
+
case UsageState.Used:
|
|
517
|
+
return true;
|
|
517
518
|
}
|
|
519
|
+
|
|
518
520
|
const array = [];
|
|
519
521
|
if (!this._exportsAreOrdered) this._sortExports();
|
|
520
522
|
for (const exportInfo of this._exports.values()) {
|
|
@@ -553,17 +555,15 @@ class ExportsInfo {
|
|
|
553
555
|
* @returns {null | true | string[]} list of exports when known
|
|
554
556
|
*/
|
|
555
557
|
getProvidedExports() {
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
case true:
|
|
564
|
-
return true;
|
|
565
|
-
}
|
|
558
|
+
switch (this._otherExportsInfo.provided) {
|
|
559
|
+
case undefined:
|
|
560
|
+
return null;
|
|
561
|
+
case null:
|
|
562
|
+
return true;
|
|
563
|
+
case true:
|
|
564
|
+
return true;
|
|
566
565
|
}
|
|
566
|
+
|
|
567
567
|
/** @type {string[]} */
|
|
568
568
|
const array = [];
|
|
569
569
|
if (!this._exportsAreOrdered) this._sortExports();
|
|
@@ -671,8 +671,9 @@ class ExportsInfo {
|
|
|
671
671
|
return false;
|
|
672
672
|
}
|
|
673
673
|
for (const exportInfo of this.ownedExports) {
|
|
674
|
-
if (exportInfo.getUsed(runtimeA) !== exportInfo.getUsed(runtimeB))
|
|
674
|
+
if (exportInfo.getUsed(runtimeA) !== exportInfo.getUsed(runtimeB)) {
|
|
675
675
|
return false;
|
|
676
|
+
}
|
|
676
677
|
}
|
|
677
678
|
return true;
|
|
678
679
|
}
|
|
@@ -722,9 +723,9 @@ class ExportsInfo {
|
|
|
722
723
|
) {
|
|
723
724
|
const nested = info.exportsInfo.getUsedName(name.slice(1), runtime);
|
|
724
725
|
if (!nested) return false;
|
|
725
|
-
return arr.
|
|
726
|
+
return [...arr, ...(Array.isArray(nested) ? nested : [nested])];
|
|
726
727
|
}
|
|
727
|
-
return arr
|
|
728
|
+
return [...arr, ...name.slice(1)];
|
|
728
729
|
}
|
|
729
730
|
const info = this.getReadOnlyExportInfo(name);
|
|
730
731
|
const usedName = info.getUsedName(name, runtime);
|
|
@@ -832,7 +833,7 @@ class ExportsInfo {
|
|
|
832
833
|
|
|
833
834
|
/** @typedef {Map<string, RuntimeUsageStateType>} UsedInRuntime */
|
|
834
835
|
|
|
835
|
-
/** @typedef {{ module: Module, export: string[] }} TargetItemWithoutConnection */
|
|
836
|
+
/** @typedef {{ module: Module, export: string[], deferred: boolean }} TargetItemWithoutConnection */
|
|
836
837
|
|
|
837
838
|
/** @typedef {{ module: Module, connection: ModuleGraphConnection, export: string[] | undefined }} TargetItemWithConnection */
|
|
838
839
|
|
|
@@ -1245,7 +1246,7 @@ class ExportInfo {
|
|
|
1245
1246
|
}
|
|
1246
1247
|
} else if (
|
|
1247
1248
|
runtime !== undefined &&
|
|
1248
|
-
|
|
1249
|
+
[...runtime].every(
|
|
1249
1250
|
runtime =>
|
|
1250
1251
|
!(/** @type {UsedInRuntime} */ (this._usedInRuntime).has(runtime))
|
|
1251
1252
|
)
|
|
@@ -1294,8 +1295,9 @@ class ExportInfo {
|
|
|
1294
1295
|
|
|
1295
1296
|
_getMaxTarget() {
|
|
1296
1297
|
if (this._maxTarget !== undefined) return this._maxTarget;
|
|
1297
|
-
if (/** @type {Target} */ (this._target).size <= 1)
|
|
1298
|
+
if (/** @type {Target} */ (this._target).size <= 1) {
|
|
1298
1299
|
return (this._maxTarget = this._target);
|
|
1300
|
+
}
|
|
1299
1301
|
let maxPriority = -Infinity;
|
|
1300
1302
|
let minPriority = Infinity;
|
|
1301
1303
|
for (const { priority } of /** @type {Target} */ (this._target).values()) {
|
|
@@ -1341,7 +1343,10 @@ class ExportInfo {
|
|
|
1341
1343
|
/** @type {TargetItemWithoutConnection} */
|
|
1342
1344
|
let target = {
|
|
1343
1345
|
module: rawTarget.connection.module,
|
|
1344
|
-
export: rawTarget.export
|
|
1346
|
+
export: rawTarget.export,
|
|
1347
|
+
deferred: Boolean(
|
|
1348
|
+
rawTarget.connection.dependency && rawTarget.connection.dependency.defer
|
|
1349
|
+
)
|
|
1345
1350
|
};
|
|
1346
1351
|
for (;;) {
|
|
1347
1352
|
if (validTargetModuleFilter(target.module)) return target;
|
|
@@ -1360,8 +1365,9 @@ class ExportInfo {
|
|
|
1360
1365
|
target = {
|
|
1361
1366
|
module: newTarget.module,
|
|
1362
1367
|
export: newTarget.export
|
|
1363
|
-
? newTarget.export
|
|
1364
|
-
: target.export.slice(1)
|
|
1368
|
+
? [...newTarget.export, ...target.export.slice(1)]
|
|
1369
|
+
: target.export.slice(1),
|
|
1370
|
+
deferred: newTarget.deferred
|
|
1365
1371
|
};
|
|
1366
1372
|
}
|
|
1367
1373
|
}
|
|
@@ -1433,10 +1439,11 @@ class ExportInfo {
|
|
|
1433
1439
|
module: newTarget.module,
|
|
1434
1440
|
connection: newTarget.connection,
|
|
1435
1441
|
export: newTarget.export
|
|
1436
|
-
?
|
|
1437
|
-
|
|
1442
|
+
? [
|
|
1443
|
+
...newTarget.export,
|
|
1444
|
+
.../** @type {NonNullable<TargetItemWithConnection["export"]>} */
|
|
1438
1445
|
(target.export).slice(1)
|
|
1439
|
-
|
|
1446
|
+
]
|
|
1440
1447
|
: /** @type {NonNullable<TargetItemWithConnection["export"]>} */
|
|
1441
1448
|
(target.export).slice(1)
|
|
1442
1449
|
};
|
|
@@ -1468,8 +1475,9 @@ class ExportInfo {
|
|
|
1468
1475
|
if (
|
|
1469
1476
|
target.export &&
|
|
1470
1477
|
!equals(/** @type {ArrayLike<string>} */ (t.export), target.export)
|
|
1471
|
-
)
|
|
1478
|
+
) {
|
|
1472
1479
|
return;
|
|
1480
|
+
}
|
|
1473
1481
|
result = values.next();
|
|
1474
1482
|
}
|
|
1475
1483
|
return target;
|
|
@@ -1517,8 +1525,9 @@ class ExportInfo {
|
|
|
1517
1525
|
* @returns {ExportsInfo} an exports info
|
|
1518
1526
|
*/
|
|
1519
1527
|
createNestedExportsInfo() {
|
|
1520
|
-
if (this.exportsInfoOwned)
|
|
1528
|
+
if (this.exportsInfoOwned) {
|
|
1521
1529
|
return /** @type {ExportsInfo} */ (this.exportsInfo);
|
|
1530
|
+
}
|
|
1522
1531
|
this.exportsInfoOwned = true;
|
|
1523
1532
|
const oldExportsInfo = this.exportsInfo;
|
|
1524
1533
|
this.exportsInfo = new ExportsInfo();
|
|
@@ -1671,5 +1680,5 @@ class ExportInfo {
|
|
|
1671
1680
|
|
|
1672
1681
|
module.exports = ExportsInfo;
|
|
1673
1682
|
module.exports.ExportInfo = ExportInfo;
|
|
1674
|
-
module.exports.UsageState = UsageState;
|
|
1675
1683
|
module.exports.RestoreProvidedData = RestoreProvidedData;
|
|
1684
|
+
module.exports.UsageState = UsageState;
|
package/lib/ExternalModule.js
CHANGED
|
@@ -12,9 +12,9 @@ const { UsageState } = require("./ExportsInfo");
|
|
|
12
12
|
const InitFragment = require("./InitFragment");
|
|
13
13
|
const Module = require("./Module");
|
|
14
14
|
const {
|
|
15
|
-
|
|
15
|
+
CSS_IMPORT_TYPES,
|
|
16
16
|
CSS_URL_TYPES,
|
|
17
|
-
|
|
17
|
+
JS_TYPES
|
|
18
18
|
} = require("./ModuleSourceTypesConstants");
|
|
19
19
|
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
|
20
20
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
@@ -352,8 +352,9 @@ const getSourceForModuleExternal = (
|
|
|
352
352
|
runtimeTemplate,
|
|
353
353
|
dependencyMeta
|
|
354
354
|
) => {
|
|
355
|
-
if (!Array.isArray(moduleAndSpecifiers))
|
|
355
|
+
if (!Array.isArray(moduleAndSpecifiers)) {
|
|
356
356
|
moduleAndSpecifiers = [moduleAndSpecifiers];
|
|
357
|
+
}
|
|
357
358
|
const initFragment = new ModuleExternalInitFragment(
|
|
358
359
|
moduleAndSpecifiers[0],
|
|
359
360
|
undefined,
|
|
@@ -587,7 +588,7 @@ class ExternalModule extends Module {
|
|
|
587
588
|
this.buildInfo = {
|
|
588
589
|
strict: true,
|
|
589
590
|
topLevelDeclarations: new Set(),
|
|
590
|
-
|
|
591
|
+
javascriptModule: compilation.outputOptions.module
|
|
591
592
|
};
|
|
592
593
|
const { request, externalType } = this._getRequestAndExternalType();
|
|
593
594
|
this.buildMeta.exportsType = "dynamic";
|
|
@@ -604,7 +605,7 @@ class ExternalModule extends Module {
|
|
|
604
605
|
}
|
|
605
606
|
break;
|
|
606
607
|
case "module":
|
|
607
|
-
if (this.buildInfo.
|
|
608
|
+
if (this.buildInfo.javascriptModule) {
|
|
608
609
|
if (!Array.isArray(request) || request.length === 1) {
|
|
609
610
|
this.buildMeta.exportsType = "namespace";
|
|
610
611
|
canMangle = true;
|
|
@@ -668,7 +669,7 @@ class ExternalModule extends Module {
|
|
|
668
669
|
* @param {ConcatenationBailoutReasonContext} context context
|
|
669
670
|
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
|
|
670
671
|
*/
|
|
671
|
-
getConcatenationBailoutReason(
|
|
672
|
+
getConcatenationBailoutReason(context) {
|
|
672
673
|
switch (this.externalType) {
|
|
673
674
|
case "amd":
|
|
674
675
|
case "amd-require":
|
|
@@ -683,8 +684,9 @@ class ExternalModule extends Module {
|
|
|
683
684
|
|
|
684
685
|
_getRequestAndExternalType() {
|
|
685
686
|
let { request, externalType } = this;
|
|
686
|
-
if (typeof request === "object" && !Array.isArray(request))
|
|
687
|
+
if (typeof request === "object" && !Array.isArray(request)) {
|
|
687
688
|
request = request[externalType];
|
|
689
|
+
}
|
|
688
690
|
externalType = this._resolveExternalType(externalType);
|
|
689
691
|
return { request, externalType };
|
|
690
692
|
}
|
|
@@ -758,7 +760,7 @@ class ExternalModule extends Module {
|
|
|
758
760
|
case "commonjs-static":
|
|
759
761
|
return getSourceForCommonJsExternal(request);
|
|
760
762
|
case "node-commonjs":
|
|
761
|
-
return /** @type {BuildInfo} */ (this.buildInfo).
|
|
763
|
+
return /** @type {BuildInfo} */ (this.buildInfo).javascriptModule
|
|
762
764
|
? getSourceForCommonJsExternalInNodeModule(
|
|
763
765
|
request,
|
|
764
766
|
/** @type {string} */
|
|
@@ -790,7 +792,7 @@ class ExternalModule extends Module {
|
|
|
790
792
|
case "script":
|
|
791
793
|
return getSourceForScriptExternal(request, runtimeTemplate);
|
|
792
794
|
case "module": {
|
|
793
|
-
if (!(/** @type {BuildInfo} */ (this.buildInfo).
|
|
795
|
+
if (!(/** @type {BuildInfo} */ (this.buildInfo).javascriptModule)) {
|
|
794
796
|
if (!runtimeTemplate.supportsDynamicImport()) {
|
|
795
797
|
throw new Error(
|
|
796
798
|
`The target environment doesn't support dynamic import() syntax so it's not possible to use external type 'module' within a script${
|
|
@@ -900,8 +902,9 @@ class ExternalModule extends Module {
|
|
|
900
902
|
);
|
|
901
903
|
|
|
902
904
|
let sourceString = sourceData.expression;
|
|
903
|
-
if (sourceData.iife)
|
|
905
|
+
if (sourceData.iife) {
|
|
904
906
|
sourceString = `(function() { return ${sourceString}; }())`;
|
|
907
|
+
}
|
|
905
908
|
if (concatenationScope) {
|
|
906
909
|
sourceString = `${
|
|
907
910
|
runtimeTemplate.supportsConst() ? "const" : "var"
|
|
@@ -912,8 +915,9 @@ class ExternalModule extends Module {
|
|
|
912
915
|
} else {
|
|
913
916
|
sourceString = `module.exports = ${sourceString};`;
|
|
914
917
|
}
|
|
915
|
-
if (sourceData.init)
|
|
918
|
+
if (sourceData.init) {
|
|
916
919
|
sourceString = `${sourceData.init}\n${sourceString}`;
|
|
920
|
+
}
|
|
917
921
|
|
|
918
922
|
let data;
|
|
919
923
|
if (sourceData.chunkInitFragments) {
|
|
@@ -12,7 +12,7 @@ const CssImportDependency = require("./dependencies/CssImportDependency");
|
|
|
12
12
|
const CssUrlDependency = require("./dependencies/CssUrlDependency");
|
|
13
13
|
const HarmonyImportDependency = require("./dependencies/HarmonyImportDependency");
|
|
14
14
|
const ImportDependency = require("./dependencies/ImportDependency");
|
|
15
|
-
const {
|
|
15
|
+
const { cachedSetProperty, resolveByProperty } = require("./util/cleverMerge");
|
|
16
16
|
|
|
17
17
|
/** @typedef {import("../declarations/WebpackOptions").ExternalItemFunctionData} ExternalItemFunctionData */
|
|
18
18
|
/** @typedef {import("../declarations/WebpackOptions").ExternalItemObjectKnown} ExternalItemObjectKnown */
|
|
@@ -75,6 +75,8 @@ const resolveLayer = (obj, layer) => {
|
|
|
75
75
|
/** @typedef {string | string[] | boolean | Record<string, string | string[]>} ExternalValue */
|
|
76
76
|
/** @typedef {string | undefined} ExternalType */
|
|
77
77
|
|
|
78
|
+
const PLUGIN_NAME = "ExternalModuleFactoryPlugin";
|
|
79
|
+
|
|
78
80
|
class ExternalModuleFactoryPlugin {
|
|
79
81
|
/**
|
|
80
82
|
* @param {string | undefined} type default external type
|
|
@@ -92,7 +94,7 @@ class ExternalModuleFactoryPlugin {
|
|
|
92
94
|
apply(normalModuleFactory) {
|
|
93
95
|
const globalType = this.type;
|
|
94
96
|
normalModuleFactory.hooks.factorize.tapAsync(
|
|
95
|
-
|
|
97
|
+
PLUGIN_NAME,
|
|
96
98
|
(data, callback) => {
|
|
97
99
|
const context = data.context;
|
|
98
100
|
const contextInfo = data.contextInfo;
|
|
@@ -335,4 +337,5 @@ class ExternalModuleFactoryPlugin {
|
|
|
335
337
|
);
|
|
336
338
|
}
|
|
337
339
|
}
|
|
340
|
+
|
|
338
341
|
module.exports = ExternalModuleFactoryPlugin;
|