webpack 5.92.1 → 5.94.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 +8 -5
- package/bin/webpack.js +6 -7
- package/hot/log.js +1 -2
- package/hot/only-dev-server.js +1 -1
- package/hot/poll.js +1 -1
- package/hot/signal.js +1 -1
- package/lib/APIPlugin.js +4 -3
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +12 -6
- package/lib/Cache.js +8 -10
- package/lib/CacheFacade.js +3 -3
- package/lib/CaseSensitiveModulesWarning.js +5 -7
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +58 -36
- package/lib/ChunkGroup.js +2 -3
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +10 -11
- package/lib/CodeGenerationResults.js +6 -5
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/Compilation.js +223 -191
- package/lib/Compiler.js +81 -82
- package/lib/ConcatenationScope.js +3 -6
- package/lib/ConditionalInitFragment.js +6 -7
- package/lib/ConstPlugin.js +7 -15
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +36 -21
- package/lib/ContextModuleFactory.js +89 -44
- package/lib/ContextReplacementPlugin.js +10 -9
- package/lib/DefinePlugin.js +76 -69
- package/lib/DelegatedModule.js +7 -3
- package/lib/DelegatedModuleFactoryPlugin.js +36 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +0 -1
- package/lib/Dependency.js +10 -14
- package/lib/DllEntryPlugin.js +4 -2
- package/lib/DllModuleFactory.js +1 -0
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +30 -15
- package/lib/EntryPlugin.js +1 -3
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +11 -12
- package/lib/EvalDevToolModulePlugin.js +10 -12
- package/lib/EvalSourceMapDevToolPlugin.js +15 -13
- package/lib/ExportsInfo.js +185 -120
- package/lib/ExternalModule.js +104 -64
- package/lib/ExternalModuleFactoryPlugin.js +23 -10
- package/lib/FileSystemInfo.js +791 -422
- package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
- package/lib/FlagDependencyExportsPlugin.js +12 -11
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +2 -5
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +8 -10
- package/lib/HotModuleReplacementPlugin.js +78 -64
- package/lib/IgnoreErrorModuleFactory.js +3 -3
- package/lib/IgnorePlugin.js +1 -3
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +2 -3
- package/lib/LibManifestPlugin.js +4 -3
- package/lib/MainTemplate.js +72 -19
- package/lib/Module.js +25 -9
- package/lib/ModuleBuildError.js +4 -11
- package/lib/ModuleDependencyError.js +5 -5
- package/lib/ModuleDependencyWarning.js +5 -5
- package/lib/ModuleError.js +1 -5
- package/lib/ModuleFilenameHelpers.js +29 -46
- package/lib/ModuleGraph.js +7 -6
- package/lib/ModuleGraphConnection.js +6 -6
- package/lib/ModuleInfoHeaderPlugin.js +82 -30
- package/lib/ModuleParseError.js +8 -9
- package/lib/ModuleRestoreError.js +1 -1
- package/lib/ModuleStoreError.js +1 -1
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +21 -22
- package/lib/ModuleWarning.js +1 -5
- package/lib/MultiCompiler.js +24 -26
- package/lib/MultiStats.js +73 -31
- package/lib/MultiWatching.js +1 -1
- package/lib/NormalModule.js +132 -70
- package/lib/NormalModuleFactory.js +53 -49
- package/lib/OptimizationStages.js +3 -3
- package/lib/ProgressPlugin.js +9 -9
- package/lib/ProvidePlugin.js +4 -4
- package/lib/RuntimeGlobals.js +71 -70
- package/lib/RuntimeModule.js +1 -1
- package/lib/RuntimePlugin.js +24 -12
- package/lib/RuntimeTemplate.js +40 -44
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolPlugin.js +42 -34
- package/lib/Stats.js +5 -11
- package/lib/Template.js +18 -24
- package/lib/TemplatedPathPlugin.js +12 -10
- package/lib/UseStrictPlugin.js +8 -1
- package/lib/WarnDeprecatedOptionPlugin.js +0 -1
- package/lib/WatchIgnorePlugin.js +26 -9
- package/lib/Watching.js +10 -5
- package/lib/WebpackOptionsApply.js +89 -62
- package/lib/asset/AssetGenerator.js +107 -42
- package/lib/asset/AssetModulesPlugin.js +29 -23
- package/lib/asset/AssetSourceGenerator.js +2 -7
- package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
- package/lib/buildChunkGraph.js +14 -19
- package/lib/cache/IdleFileCachePlugin.js +4 -4
- package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
- package/lib/cache/PackFileCacheStrategy.js +51 -50
- package/lib/cache/ResolverCachePlugin.js +6 -6
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +148 -104
- package/lib/config/browserslistTargetHandler.js +16 -13
- package/lib/config/defaults.js +31 -28
- package/lib/config/normalization.js +335 -344
- package/lib/config/target.js +42 -52
- package/lib/container/ContainerEntryModule.js +2 -2
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/RemoteRuntimeModule.js +11 -8
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +39 -40
- package/lib/css/CssGenerator.js +11 -14
- package/lib/css/CssLoadingRuntimeModule.js +10 -10
- package/lib/css/CssModulesPlugin.js +127 -47
- package/lib/css/CssParser.js +20 -18
- package/lib/css/walkCssTokens.js +80 -95
- package/lib/debug/ProfilingPlugin.js +19 -20
- package/lib/dependencies/AMDDefineDependency.js +1 -1
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
- package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
- package/lib/dependencies/CommonJsExportsDependency.js +0 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
- package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
- package/lib/dependencies/ConstDependency.js +1 -1
- package/lib/dependencies/ContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +31 -34
- package/lib/dependencies/ContextElementDependency.js +2 -2
- package/lib/dependencies/CriticalDependencyWarning.js +1 -1
- package/lib/dependencies/CssExportDependency.js +72 -9
- package/lib/dependencies/CssImportDependency.js +0 -2
- package/lib/dependencies/CssLocalIdentifierDependency.js +68 -21
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +4 -5
- package/lib/dependencies/DynamicExports.js +5 -5
- package/lib/dependencies/ExportsInfoDependency.js +1 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
- package/lib/dependencies/HarmonyExports.js +2 -2
- package/lib/dependencies/HarmonyImportDependency.js +2 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +41 -16
- package/lib/dependencies/ImportDependency.js +1 -1
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
- package/lib/dependencies/ImportMetaPlugin.js +11 -13
- package/lib/dependencies/ImportParserPlugin.js +39 -44
- package/lib/dependencies/JsonExportsDependency.js +22 -18
- package/lib/dependencies/LoaderPlugin.js +47 -36
- package/lib/dependencies/LocalModule.js +1 -1
- package/lib/dependencies/LocalModulesHelpers.js +4 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
- package/lib/dependencies/ProvidedDependency.js +1 -1
- package/lib/dependencies/PureExpressionDependency.js +6 -6
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLDependency.js +3 -3
- package/lib/dependencies/URLPlugin.js +66 -12
- package/lib/dependencies/WorkerPlugin.js +25 -24
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +11 -12
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
- package/lib/hmr/LazyCompilationPlugin.js +27 -12
- package/lib/hmr/lazyCompilationBackend.js +64 -40
- package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +5 -1
- package/lib/ids/IdHelpers.js +29 -39
- package/lib/ids/SyncModuleIdsPlugin.js +7 -2
- package/lib/index.js +1 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +6 -4
- package/lib/javascript/BasicEvaluatedExpression.js +4 -19
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -11
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
- package/lib/javascript/JavascriptGenerator.js +23 -7
- package/lib/javascript/JavascriptModulesPlugin.js +97 -70
- package/lib/javascript/JavascriptParser.js +179 -200
- package/lib/javascript/JavascriptParserHelpers.js +20 -21
- package/lib/javascript/StartupHelpers.js +41 -13
- package/lib/json/JsonGenerator.js +7 -13
- package/lib/json/JsonModulesPlugin.js +1 -4
- package/lib/json/JsonParser.js +5 -3
- package/lib/library/AmdLibraryPlugin.js +12 -16
- package/lib/library/AssignLibraryPlugin.js +9 -11
- package/lib/library/EnableLibraryPlugin.js +25 -15
- package/lib/library/ExportPropertyLibraryPlugin.js +8 -2
- package/lib/library/JsonpLibraryPlugin.js +2 -1
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +2 -1
- package/lib/library/SystemLibraryPlugin.js +2 -1
- package/lib/library/UmdLibraryPlugin.js +66 -92
- package/lib/logging/Logger.js +32 -4
- package/lib/logging/createConsoleLogger.js +12 -13
- package/lib/logging/runtime.js +7 -8
- package/lib/logging/truncateArgs.js +5 -8
- package/lib/node/NodeWatchFileSystem.js +3 -18
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
- package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/nodeConsole.js +22 -22
- package/lib/optimize/AggressiveMergingPlugin.js +2 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
- package/lib/optimize/ConcatenatedModule.js +144 -61
- package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
- package/lib/optimize/InnerGraph.js +17 -17
- package/lib/optimize/InnerGraphPlugin.js +8 -7
- package/lib/optimize/LimitChunkCountPlugin.js +2 -3
- package/lib/optimize/MangleExportsPlugin.js +1 -0
- package/lib/optimize/MinMaxSizeWarning.js +1 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +56 -78
- package/lib/optimize/RealContentHashPlugin.js +7 -10
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
- package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
- package/lib/optimize/SplitChunksPlugin.js +34 -30
- package/lib/performance/SizeLimitsPlugin.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
- package/lib/rules/BasicEffectRulePlugin.js +3 -1
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
- package/lib/rules/RuleSetCompiler.js +41 -22
- package/lib/rules/UseEffectRulePlugin.js +36 -32
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
- package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
- package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +241 -126
- package/lib/serialization/BinaryMiddleware.js +44 -28
- package/lib/serialization/DateObjectSerializer.js +1 -0
- package/lib/serialization/ErrorObjectSerializer.js +2 -0
- package/lib/serialization/FileMiddleware.js +154 -106
- package/lib/serialization/MapObjectSerializer.js +2 -1
- package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
- package/lib/serialization/ObjectMiddleware.js +52 -56
- package/lib/serialization/PlainObjectSerializer.js +32 -6
- package/lib/serialization/RegExpObjectSerializer.js +1 -0
- package/lib/serialization/Serializer.js +4 -5
- package/lib/serialization/SerializerMiddleware.js +6 -6
- package/lib/serialization/SetObjectSerializer.js +2 -1
- package/lib/sharing/ConsumeSharedModule.js +19 -14
- package/lib/sharing/ConsumeSharedPlugin.js +116 -97
- package/lib/sharing/ConsumeSharedRuntimeModule.js +108 -141
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedPlugin.js +2 -2
- package/lib/sharing/resolveMatchedConfigs.js +2 -1
- package/lib/sharing/utils.js +15 -27
- package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
- package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
- package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
- package/lib/stats/StatsFactory.js +127 -56
- package/lib/stats/StatsPrinter.js +75 -44
- package/lib/util/ArrayHelpers.js +8 -4
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +31 -12
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +1 -0
- package/lib/util/MapHelpers.js +1 -3
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/Queue.js +1 -1
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +4 -3
- package/lib/util/StackedCacheMap.js +4 -6
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +0 -5
- package/lib/util/TupleQueue.js +1 -1
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +7 -7
- package/lib/util/WeakTupleMap.js +19 -21
- package/lib/util/binarySearchBounds.js +5 -12
- package/lib/util/chainedImports.js +1 -1
- package/lib/util/cleverMerge.js +21 -19
- package/lib/util/comparators.js +57 -52
- package/lib/util/compileBooleanMatcher.js +3 -6
- package/lib/util/conventions.js +10 -13
- package/lib/util/createHash.js +9 -6
- package/lib/util/deprecation.js +22 -12
- package/lib/util/deterministicGrouping.js +19 -26
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +31 -31
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +7 -7
- package/lib/util/hash/xxhash64.js +2 -2
- package/lib/util/identifier.js +81 -59
- package/lib/util/memoize.js +8 -10
- package/lib/util/mergeScope.js +6 -9
- package/lib/util/nonNumericOnlyHash.js +2 -2
- package/lib/util/numberHash.js +1 -6
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/propertyAccess.js +2 -5
- package/lib/util/propertyName.js +1 -3
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +103 -113
- package/lib/util/semver.js +29 -27
- package/lib/util/serialization.js +16 -1
- package/lib/util/smartGrouping.js +5 -5
- package/lib/util/source.js +1 -1
- package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
- package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
- package/package.json +17 -16
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
- package/types.d.ts +682 -347
@@ -21,8 +21,8 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
|
|
21
21
|
* @param {(string[] | null)=} runtimeRequirements runtime requirements
|
22
22
|
* @returns {function(Expression): true} plugin function
|
23
23
|
*/
|
24
|
-
exports.toConstantDependency = (parser, value, runtimeRequirements) =>
|
25
|
-
|
24
|
+
module.exports.toConstantDependency = (parser, value, runtimeRequirements) =>
|
25
|
+
function constDependency(expr) {
|
26
26
|
const dep = new ConstDependency(
|
27
27
|
value,
|
28
28
|
/** @type {Range} */ (expr.range),
|
@@ -32,43 +32,39 @@ exports.toConstantDependency = (parser, value, runtimeRequirements) => {
|
|
32
32
|
parser.state.module.addPresentationalDependency(dep);
|
33
33
|
return true;
|
34
34
|
};
|
35
|
-
};
|
36
35
|
|
37
36
|
/**
|
38
37
|
* @param {string} value the string value
|
39
38
|
* @returns {function(Expression): BasicEvaluatedExpression} plugin function
|
40
39
|
*/
|
41
|
-
exports.evaluateToString = value =>
|
42
|
-
|
40
|
+
module.exports.evaluateToString = value =>
|
41
|
+
function stringExpression(expr) {
|
43
42
|
return new BasicEvaluatedExpression()
|
44
43
|
.setString(value)
|
45
44
|
.setRange(/** @type {Range} */ (expr.range));
|
46
45
|
};
|
47
|
-
};
|
48
46
|
|
49
47
|
/**
|
50
48
|
* @param {number} value the number value
|
51
49
|
* @returns {function(Expression): BasicEvaluatedExpression} plugin function
|
52
50
|
*/
|
53
|
-
exports.evaluateToNumber = value =>
|
54
|
-
|
51
|
+
module.exports.evaluateToNumber = value =>
|
52
|
+
function stringExpression(expr) {
|
55
53
|
return new BasicEvaluatedExpression()
|
56
54
|
.setNumber(value)
|
57
55
|
.setRange(/** @type {Range} */ (expr.range));
|
58
56
|
};
|
59
|
-
};
|
60
57
|
|
61
58
|
/**
|
62
59
|
* @param {boolean} value the boolean value
|
63
60
|
* @returns {function(Expression): BasicEvaluatedExpression} plugin function
|
64
61
|
*/
|
65
|
-
exports.evaluateToBoolean = value =>
|
66
|
-
|
62
|
+
module.exports.evaluateToBoolean = value =>
|
63
|
+
function booleanExpression(expr) {
|
67
64
|
return new BasicEvaluatedExpression()
|
68
65
|
.setBoolean(value)
|
69
66
|
.setRange(/** @type {Range} */ (expr.range));
|
70
67
|
};
|
71
|
-
};
|
72
68
|
|
73
69
|
/**
|
74
70
|
* @param {string} identifier identifier
|
@@ -77,9 +73,14 @@ exports.evaluateToBoolean = value => {
|
|
77
73
|
* @param {boolean|null=} truthy is truthy, null if nullish
|
78
74
|
* @returns {function(Expression): BasicEvaluatedExpression} callback
|
79
75
|
*/
|
80
|
-
exports.evaluateToIdentifier = (
|
81
|
-
|
82
|
-
|
76
|
+
module.exports.evaluateToIdentifier = (
|
77
|
+
identifier,
|
78
|
+
rootInfo,
|
79
|
+
getMembers,
|
80
|
+
truthy
|
81
|
+
) =>
|
82
|
+
function identifierExpression(expr) {
|
83
|
+
const evaluatedExpression = new BasicEvaluatedExpression()
|
83
84
|
.setIdentifier(identifier, rootInfo, getMembers)
|
84
85
|
.setSideEffects(false)
|
85
86
|
.setRange(/** @type {Range} */ (expr.range));
|
@@ -97,15 +98,14 @@ exports.evaluateToIdentifier = (identifier, rootInfo, getMembers, truthy) => {
|
|
97
98
|
|
98
99
|
return evaluatedExpression;
|
99
100
|
};
|
100
|
-
};
|
101
101
|
|
102
102
|
/**
|
103
103
|
* @param {JavascriptParser} parser the parser
|
104
104
|
* @param {string} message the message
|
105
105
|
* @returns {function(Expression): boolean | undefined} callback to handle unsupported expression
|
106
106
|
*/
|
107
|
-
exports.expressionIsUnsupported = (parser, message) =>
|
108
|
-
|
107
|
+
module.exports.expressionIsUnsupported = (parser, message) =>
|
108
|
+
function unsupportedExpression(expr) {
|
109
109
|
const dep = new ConstDependency(
|
110
110
|
"(void 0)",
|
111
111
|
/** @type {Range} */ (expr.range),
|
@@ -122,8 +122,7 @@ exports.expressionIsUnsupported = (parser, message) => {
|
|
122
122
|
);
|
123
123
|
return true;
|
124
124
|
};
|
125
|
-
};
|
126
125
|
|
127
|
-
exports.skipTraversal = () => true;
|
126
|
+
module.exports.skipTraversal = () => true;
|
128
127
|
|
129
|
-
exports.approve = () => true;
|
128
|
+
module.exports.approve = () => true;
|
@@ -15,6 +15,7 @@ const { getAllChunks } = require("./ChunkHelpers");
|
|
15
15
|
/** @typedef {import("../Chunk").ChunkId} ChunkId */
|
16
16
|
/** @typedef {import("../Compilation")} Compilation */
|
17
17
|
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
18
|
+
/** @typedef {import("../ChunkGraph").ModuleId} ModuleId */
|
18
19
|
/** @typedef {import("../Entrypoint")} Entrypoint */
|
19
20
|
/** @typedef {import("../ChunkGraph").EntryModuleWithChunkGroup} EntryModuleWithChunkGroup */
|
20
21
|
/** @typedef {import("../ChunkGroup")} ChunkGroup */
|
@@ -23,6 +24,9 @@ const { getAllChunks } = require("./ChunkHelpers");
|
|
23
24
|
|
24
25
|
const EXPORT_PREFIX = `var ${RuntimeGlobals.exports} = `;
|
25
26
|
|
27
|
+
/** @typedef {Set<Chunk>} Chunks */
|
28
|
+
/** @typedef {ModuleId[]} ModuleIds */
|
29
|
+
|
26
30
|
/**
|
27
31
|
* @param {ChunkGraph} chunkGraph chunkGraph
|
28
32
|
* @param {RuntimeTemplate} runtimeTemplate runtimeTemplate
|
@@ -31,7 +35,7 @@ const EXPORT_PREFIX = `var ${RuntimeGlobals.exports} = `;
|
|
31
35
|
* @param {boolean} passive true: passive startup with on chunks loaded
|
32
36
|
* @returns {string} runtime code
|
33
37
|
*/
|
34
|
-
exports.generateEntryStartup = (
|
38
|
+
module.exports.generateEntryStartup = (
|
35
39
|
chunkGraph,
|
36
40
|
runtimeTemplate,
|
37
41
|
entries,
|
@@ -46,9 +50,16 @@ exports.generateEntryStartup = (
|
|
46
50
|
)}`
|
47
51
|
];
|
48
52
|
|
49
|
-
|
50
|
-
|
51
|
-
|
53
|
+
/**
|
54
|
+
* @param {ModuleId} id id
|
55
|
+
* @returns {string} fn to execute
|
56
|
+
*/
|
57
|
+
const runModule = id => `__webpack_exec__(${JSON.stringify(id)})`;
|
58
|
+
/**
|
59
|
+
* @param {Chunks} chunks chunks
|
60
|
+
* @param {ModuleIds} moduleIds module ids
|
61
|
+
* @param {boolean=} final true when final, otherwise false
|
62
|
+
*/
|
52
63
|
const outputCombination = (chunks, moduleIds, final) => {
|
53
64
|
if (chunks.size === 0) {
|
54
65
|
runtime.push(
|
@@ -71,16 +82,19 @@ exports.generateEntryStartup = (
|
|
71
82
|
}
|
72
83
|
};
|
73
84
|
|
74
|
-
|
75
|
-
let
|
85
|
+
/** @type {Chunks | undefined} */
|
86
|
+
let currentChunks;
|
87
|
+
/** @type {ModuleIds | undefined} */
|
88
|
+
let currentModuleIds;
|
76
89
|
|
77
90
|
for (const [module, entrypoint] of entries) {
|
78
91
|
const runtimeChunk =
|
79
92
|
/** @type {Entrypoint} */
|
80
93
|
(entrypoint).getRuntimeChunk();
|
81
|
-
const moduleId = chunkGraph.getModuleId(module);
|
94
|
+
const moduleId = /** @type {ModuleId} */ (chunkGraph.getModuleId(module));
|
82
95
|
const chunks = getAllChunks(
|
83
|
-
/** @type {Entrypoint} */
|
96
|
+
/** @type {Entrypoint} */
|
97
|
+
(entrypoint),
|
84
98
|
chunk,
|
85
99
|
runtimeChunk
|
86
100
|
);
|
@@ -89,10 +103,14 @@ exports.generateEntryStartup = (
|
|
89
103
|
currentChunks.size === chunks.size &&
|
90
104
|
isSubset(currentChunks, chunks)
|
91
105
|
) {
|
92
|
-
|
106
|
+
/** @type {ModuleIds} */
|
107
|
+
(currentModuleIds).push(moduleId);
|
93
108
|
} else {
|
94
109
|
if (currentChunks) {
|
95
|
-
outputCombination(
|
110
|
+
outputCombination(
|
111
|
+
currentChunks,
|
112
|
+
/** @type {ModuleIds} */ (currentModuleIds)
|
113
|
+
);
|
96
114
|
}
|
97
115
|
currentChunks = chunks;
|
98
116
|
currentModuleIds = [moduleId];
|
@@ -101,7 +119,12 @@ exports.generateEntryStartup = (
|
|
101
119
|
|
102
120
|
// output current modules with export prefix
|
103
121
|
if (currentChunks) {
|
104
|
-
outputCombination(
|
122
|
+
outputCombination(
|
123
|
+
currentChunks,
|
124
|
+
/** @type {ModuleIds} */
|
125
|
+
(currentModuleIds),
|
126
|
+
true
|
127
|
+
);
|
105
128
|
}
|
106
129
|
runtime.push("");
|
107
130
|
return Template.asString(runtime);
|
@@ -114,7 +137,12 @@ exports.generateEntryStartup = (
|
|
114
137
|
* @param {Chunk} chunk chunk
|
115
138
|
* @returns {void}
|
116
139
|
*/
|
117
|
-
exports.updateHashForEntryStartup = (
|
140
|
+
module.exports.updateHashForEntryStartup = (
|
141
|
+
hash,
|
142
|
+
chunkGraph,
|
143
|
+
entries,
|
144
|
+
chunk
|
145
|
+
) => {
|
118
146
|
for (const [module, entrypoint] of entries) {
|
119
147
|
const runtimeChunk =
|
120
148
|
/** @type {Entrypoint} */
|
@@ -137,7 +165,7 @@ exports.updateHashForEntryStartup = (hash, chunkGraph, entries, chunk) => {
|
|
137
165
|
* @param {function(Chunk, ChunkGraph): boolean} filterFn filter function
|
138
166
|
* @returns {Set<number | string>} initially fulfilled chunk ids
|
139
167
|
*/
|
140
|
-
exports.getInitialChunkIds = (chunk, chunkGraph, filterFn) => {
|
168
|
+
module.exports.getInitialChunkIds = (chunk, chunkGraph, filterFn) => {
|
141
169
|
const initialChunkIds = new Set(chunk.ids);
|
142
170
|
for (const c of chunk.getAllInitialChunks()) {
|
143
171
|
if (c === chunk || filterFn(c, chunkGraph)) continue;
|
@@ -27,7 +27,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
27
27
|
const stringifySafe = data => {
|
28
28
|
const stringified = JSON.stringify(data);
|
29
29
|
if (!stringified) {
|
30
|
-
return
|
30
|
+
return; // Invalid JSON
|
31
31
|
}
|
32
32
|
|
33
33
|
return stringified.replace(/\u2028|\u2029/g, str =>
|
@@ -53,22 +53,16 @@ const createObjectForExportsInfo = (data, exportsInfo, runtime) => {
|
|
53
53
|
if (used === UsageState.Unused) continue;
|
54
54
|
|
55
55
|
/** @type {RawJsonData} */
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
data[key]
|
60
|
-
exportInfo.exportsInfo,
|
61
|
-
runtime
|
62
|
-
);
|
63
|
-
} else {
|
64
|
-
value = data[key];
|
65
|
-
}
|
56
|
+
const value =
|
57
|
+
used === UsageState.OnlyPropertiesUsed && exportInfo.exportsInfo
|
58
|
+
? createObjectForExportsInfo(data[key], exportInfo.exportsInfo, runtime)
|
59
|
+
: data[key];
|
66
60
|
|
67
61
|
const name = /** @type {string} */ (exportInfo.getUsedName(key, runtime));
|
68
62
|
/** @type {Record<string, RawJsonData>} */ (reducedData)[name] = value;
|
69
63
|
}
|
70
64
|
if (isArray) {
|
71
|
-
|
65
|
+
const arrayLengthWhenUsed =
|
72
66
|
exportsInfo.getReadOnlyExportInfo("length").getUsed(runtime) !==
|
73
67
|
UsageState.Unused
|
74
68
|
? data.length
|
@@ -173,7 +167,7 @@ class JsonGenerator extends Generator {
|
|
173
167
|
}
|
174
168
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
175
169
|
/** @type {RawJsonData} */
|
176
|
-
|
170
|
+
const finalJson =
|
177
171
|
typeof data === "object" &&
|
178
172
|
data &&
|
179
173
|
exportsInfo.otherExportsInfo.getUsed(runtime) === UsageState.Unused
|
@@ -33,7 +33,6 @@ class JsonModulesPlugin {
|
|
33
33
|
* Apply the plugin
|
34
34
|
* @param {Compiler} compiler the compiler instance
|
35
35
|
* @returns {void}
|
36
|
-
*
|
37
36
|
*/
|
38
37
|
apply(compiler) {
|
39
38
|
compiler.hooks.compilation.tap(
|
@@ -48,9 +47,7 @@ class JsonModulesPlugin {
|
|
48
47
|
});
|
49
48
|
normalModuleFactory.hooks.createGenerator
|
50
49
|
.for(JSON_MODULE_TYPE)
|
51
|
-
.tap(PLUGIN_NAME, () =>
|
52
|
-
return new JsonGenerator();
|
53
|
-
});
|
50
|
+
.tap(PLUGIN_NAME, () => new JsonGenerator());
|
54
51
|
}
|
55
52
|
);
|
56
53
|
}
|
package/lib/json/JsonParser.js
CHANGED
@@ -49,9 +49,11 @@ class JsonParser extends Parser {
|
|
49
49
|
data =
|
50
50
|
typeof source === "object"
|
51
51
|
? source
|
52
|
-
: parseFn(source[0] === "\
|
53
|
-
} catch (
|
54
|
-
throw new Error(
|
52
|
+
: parseFn(source[0] === "\uFEFF" ? source.slice(1) : source);
|
53
|
+
} catch (err) {
|
54
|
+
throw new Error(
|
55
|
+
`Cannot parse JSON: ${/** @type {Error} */ (err).message}`
|
56
|
+
);
|
55
57
|
}
|
56
58
|
const jsonData = new JsonData(/** @type {Buffer | RawJsonData} */ (data));
|
57
59
|
const buildInfo = /** @type {BuildInfo} */ (state.module.buildInfo);
|
@@ -60,17 +60,14 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
60
60
|
`AMD library name must be unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}`
|
61
61
|
);
|
62
62
|
}
|
63
|
-
} else {
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
);
|
68
|
-
}
|
63
|
+
} else if (name && typeof name !== "string") {
|
64
|
+
throw new Error(
|
65
|
+
`AMD library name must be a simple string or unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}`
|
66
|
+
);
|
69
67
|
}
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
};
|
68
|
+
const _name = /** @type {string} */ (name);
|
69
|
+
const _amdContainer = /** @type {string} */ (amdContainer);
|
70
|
+
return { name: _name, amdContainer: _amdContainer };
|
74
71
|
}
|
75
72
|
|
76
73
|
/**
|
@@ -146,13 +143,12 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
146
143
|
source,
|
147
144
|
`${fnEnd});`
|
148
145
|
);
|
149
|
-
} else {
|
150
|
-
return new ConcatSource(
|
151
|
-
`${amdContainerPrefix}define(${fnStart}`,
|
152
|
-
source,
|
153
|
-
`${fnEnd});`
|
154
|
-
);
|
155
146
|
}
|
147
|
+
return new ConcatSource(
|
148
|
+
`${amdContainerPrefix}define(${fnStart}`,
|
149
|
+
source,
|
150
|
+
`${fnEnd});`
|
151
|
+
);
|
156
152
|
}
|
157
153
|
|
158
154
|
/**
|
@@ -36,9 +36,8 @@ const IDENTIFIER_REGEX =
|
|
36
36
|
* @param {string} name name to be validated
|
37
37
|
* @returns {boolean} true, when valid
|
38
38
|
*/
|
39
|
-
const isNameValid = name =>
|
40
|
-
|
41
|
-
};
|
39
|
+
const isNameValid = name =>
|
40
|
+
!KEYWORD_REGEX.test(name) && IDENTIFIER_REGEX.test(name);
|
42
41
|
|
43
42
|
/**
|
44
43
|
* @param {string[]} accessor variable plus properties
|
@@ -136,15 +135,14 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
136
135
|
`Library name must be a string or string array. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}`
|
137
136
|
);
|
138
137
|
}
|
139
|
-
} else {
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
);
|
144
|
-
}
|
138
|
+
} else if (name && typeof name !== "string" && !Array.isArray(name)) {
|
139
|
+
throw new Error(
|
140
|
+
`Library name must be a string, string array or unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}`
|
141
|
+
);
|
145
142
|
}
|
143
|
+
const _name = /** @type {string | string[]} */ (name);
|
146
144
|
return {
|
147
|
-
name:
|
145
|
+
name: _name,
|
148
146
|
export: library.export
|
149
147
|
};
|
150
148
|
}
|
@@ -356,7 +354,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
356
354
|
* @returns {void}
|
357
355
|
*/
|
358
356
|
runtimeRequirements(chunk, set, libraryContext) {
|
359
|
-
|
357
|
+
set.add(RuntimeGlobals.exports);
|
360
358
|
}
|
361
359
|
|
362
360
|
/**
|
@@ -52,10 +52,11 @@ class EnableLibraryPlugin {
|
|
52
52
|
throw new Error(
|
53
53
|
`Library type "${type}" is not enabled. ` +
|
54
54
|
"EnableLibraryPlugin need to be used to enable this type of library. " +
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
55
|
+
`This usually happens through the "output.enabledLibraryTypes" option. ` +
|
56
|
+
`If you are using a function as entry which sets "library", you need to add all potential library types to "output.enabledLibraryTypes". ` +
|
57
|
+
`These types are enabled: ${Array.from(
|
58
|
+
getEnabledTypes(compiler)
|
59
|
+
).join(", ")}`
|
59
60
|
);
|
60
61
|
}
|
61
62
|
}
|
@@ -78,12 +79,13 @@ class EnableLibraryPlugin {
|
|
78
79
|
const ExportPropertyTemplatePlugin = require("./ExportPropertyLibraryPlugin");
|
79
80
|
new ExportPropertyTemplatePlugin({
|
80
81
|
type,
|
81
|
-
nsObjectUsed:
|
82
|
+
nsObjectUsed: !["module", "modern-module"].includes(type),
|
83
|
+
runtimeExportsUsed: type !== "modern-module"
|
82
84
|
}).apply(compiler);
|
83
85
|
};
|
84
86
|
switch (type) {
|
85
87
|
case "var": {
|
86
|
-
|
88
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
87
89
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
88
90
|
new AssignLibraryPlugin({
|
89
91
|
type,
|
@@ -94,7 +96,7 @@ class EnableLibraryPlugin {
|
|
94
96
|
break;
|
95
97
|
}
|
96
98
|
case "assign-properties": {
|
97
|
-
|
99
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
98
100
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
99
101
|
new AssignLibraryPlugin({
|
100
102
|
type,
|
@@ -106,7 +108,7 @@ class EnableLibraryPlugin {
|
|
106
108
|
break;
|
107
109
|
}
|
108
110
|
case "assign": {
|
109
|
-
|
111
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
110
112
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
111
113
|
new AssignLibraryPlugin({
|
112
114
|
type,
|
@@ -117,7 +119,7 @@ class EnableLibraryPlugin {
|
|
117
119
|
break;
|
118
120
|
}
|
119
121
|
case "this": {
|
120
|
-
|
122
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
121
123
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
122
124
|
new AssignLibraryPlugin({
|
123
125
|
type,
|
@@ -128,7 +130,7 @@ class EnableLibraryPlugin {
|
|
128
130
|
break;
|
129
131
|
}
|
130
132
|
case "window": {
|
131
|
-
|
133
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
132
134
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
133
135
|
new AssignLibraryPlugin({
|
134
136
|
type,
|
@@ -139,7 +141,7 @@ class EnableLibraryPlugin {
|
|
139
141
|
break;
|
140
142
|
}
|
141
143
|
case "self": {
|
142
|
-
|
144
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
143
145
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
144
146
|
new AssignLibraryPlugin({
|
145
147
|
type,
|
@@ -150,7 +152,7 @@ class EnableLibraryPlugin {
|
|
150
152
|
break;
|
151
153
|
}
|
152
154
|
case "global": {
|
153
|
-
|
155
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
154
156
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
155
157
|
new AssignLibraryPlugin({
|
156
158
|
type,
|
@@ -161,7 +163,7 @@ class EnableLibraryPlugin {
|
|
161
163
|
break;
|
162
164
|
}
|
163
165
|
case "commonjs": {
|
164
|
-
|
166
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
165
167
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
166
168
|
new AssignLibraryPlugin({
|
167
169
|
type,
|
@@ -172,7 +174,7 @@ class EnableLibraryPlugin {
|
|
172
174
|
break;
|
173
175
|
}
|
174
176
|
case "commonjs-static": {
|
175
|
-
|
177
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
176
178
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
177
179
|
new AssignLibraryPlugin({
|
178
180
|
type,
|
@@ -184,7 +186,7 @@ class EnableLibraryPlugin {
|
|
184
186
|
}
|
185
187
|
case "commonjs2":
|
186
188
|
case "commonjs-module": {
|
187
|
-
|
189
|
+
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697
|
188
190
|
const AssignLibraryPlugin = require("./AssignLibraryPlugin");
|
189
191
|
new AssignLibraryPlugin({
|
190
192
|
type,
|
@@ -238,6 +240,14 @@ class EnableLibraryPlugin {
|
|
238
240
|
}).apply(compiler);
|
239
241
|
break;
|
240
242
|
}
|
243
|
+
case "modern-module": {
|
244
|
+
enableExportProperty();
|
245
|
+
const ModernModuleLibraryPlugin = require("./ModernModuleLibraryPlugin");
|
246
|
+
new ModernModuleLibraryPlugin({
|
247
|
+
type
|
248
|
+
}).apply(compiler);
|
249
|
+
break;
|
250
|
+
}
|
241
251
|
default:
|
242
252
|
throw new Error(`Unsupported library type ${type}.
|
243
253
|
Plugins which provide custom library types must call EnableLibraryPlugin.setEnabled(compiler, type) to disable this error.`);
|
@@ -30,6 +30,7 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
30
30
|
* @typedef {object} ExportPropertyLibraryPluginOptions
|
31
31
|
* @property {LibraryType} type
|
32
32
|
* @property {boolean} nsObjectUsed the namespace object is used
|
33
|
+
* @property {boolean} runtimeExportsUsed runtime exports are used
|
33
34
|
*/
|
34
35
|
/**
|
35
36
|
* @typedef {ExportPropertyLibraryPluginParsed} T
|
@@ -39,12 +40,13 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
|
|
39
40
|
/**
|
40
41
|
* @param {ExportPropertyLibraryPluginOptions} options options
|
41
42
|
*/
|
42
|
-
constructor({ type, nsObjectUsed }) {
|
43
|
+
constructor({ type, nsObjectUsed, runtimeExportsUsed }) {
|
43
44
|
super({
|
44
45
|
pluginName: "ExportPropertyLibraryPlugin",
|
45
46
|
type
|
46
47
|
});
|
47
48
|
this.nsObjectUsed = nsObjectUsed;
|
49
|
+
this.runtimeExportsUsed = runtimeExportsUsed;
|
48
50
|
}
|
49
51
|
|
50
52
|
/**
|
@@ -93,7 +95,11 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
|
|
93
95
|
* @param {LibraryContext<T>} libraryContext context
|
94
96
|
* @returns {void}
|
95
97
|
*/
|
96
|
-
runtimeRequirements(chunk, set, libraryContext) {
|
98
|
+
runtimeRequirements(chunk, set, libraryContext) {
|
99
|
+
if (this.runtimeExportsUsed) {
|
100
|
+
set.add(RuntimeGlobals.exports);
|
101
|
+
}
|
102
|
+
}
|
97
103
|
|
98
104
|
/**
|
99
105
|
* @param {Source} source source
|
@@ -54,8 +54,9 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
|
|
54
54
|
`Jsonp library name must be a simple string. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}`
|
55
55
|
);
|
56
56
|
}
|
57
|
+
const _name = /** @type {string} */ (name);
|
57
58
|
return {
|
58
|
-
name:
|
59
|
+
name: _name
|
59
60
|
};
|
60
61
|
}
|
61
62
|
|