webpack 5.93.0 → 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 +33 -20
- package/lib/ContextModuleFactory.js +89 -44
- package/lib/ContextReplacementPlugin.js +10 -9
- package/lib/DefinePlugin.js +75 -68
- 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 +126 -69
- 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/WarnDeprecatedOptionPlugin.js +0 -1
- package/lib/WatchIgnorePlugin.js +26 -9
- package/lib/Watching.js +10 -5
- package/lib/WebpackOptionsApply.js +84 -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 +26 -24
- package/lib/css/CssGenerator.js +9 -4
- 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 +7 -7
- package/lib/dependencies/CssImportDependency.js +0 -2
- package/lib/dependencies/CssLocalIdentifierDependency.js +3 -3
- 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 +40 -15
- 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 +3 -3
- 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 +5 -4
- package/lib/javascript/BasicEvaluatedExpression.js +4 -19
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +3 -2
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
- package/lib/javascript/JavascriptGenerator.js +23 -7
- package/lib/javascript/JavascriptModulesPlugin.js +91 -69
- 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 +8 -10
- package/lib/library/EnableLibraryPlugin.js +15 -14
- package/lib/library/JsonpLibraryPlugin.js +2 -1
- package/lib/library/ModernModuleLibraryPlugin.js +8 -6
- 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 +80 -48
- 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 +54 -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/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/ConsumeSharedPlugin.js +116 -97
- package/lib/sharing/ConsumeSharedRuntimeModule.js +4 -4
- 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 +8 -11
- 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 +15 -14
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1 -0
- 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 +667 -347
@@ -8,6 +8,7 @@
|
|
8
8
|
const { ConcatSource, RawSource, CachedSource } = require("webpack-sources");
|
9
9
|
const { UsageState } = require("./ExportsInfo");
|
10
10
|
const Template = require("./Template");
|
11
|
+
const CssModulesPlugin = require("./css/CssModulesPlugin");
|
11
12
|
const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
|
12
13
|
|
13
14
|
/** @typedef {import("webpack-sources").Source} Source */
|
@@ -84,7 +85,7 @@ const printExportsInfoToSource = (
|
|
84
85
|
for (const exportInfo of printedExports) {
|
85
86
|
const target = exportInfo.getTarget(moduleGraph);
|
86
87
|
source.add(
|
87
|
-
Template.toComment(
|
88
|
+
`${Template.toComment(
|
88
89
|
`${indent}export ${JSON.stringify(exportInfo.name).slice(
|
89
90
|
1,
|
90
91
|
-1
|
@@ -99,12 +100,12 @@ const printExportsInfoToSource = (
|
|
99
100
|
}`
|
100
101
|
: ""
|
101
102
|
}`
|
102
|
-
)
|
103
|
+
)}\n`
|
103
104
|
);
|
104
105
|
if (exportInfo.exportsInfo) {
|
105
106
|
printExportsInfoToSource(
|
106
107
|
source,
|
107
|
-
indent
|
108
|
+
`${indent} `,
|
108
109
|
exportInfo.exportsInfo,
|
109
110
|
moduleGraph,
|
110
111
|
requestShortener,
|
@@ -115,9 +116,9 @@ const printExportsInfoToSource = (
|
|
115
116
|
|
116
117
|
if (alreadyPrintedExports) {
|
117
118
|
source.add(
|
118
|
-
Template.toComment(
|
119
|
+
`${Template.toComment(
|
119
120
|
`${indent}... (${alreadyPrintedExports} already listed exports)`
|
120
|
-
)
|
121
|
+
)}\n`
|
121
122
|
);
|
122
123
|
}
|
123
124
|
|
@@ -133,13 +134,13 @@ const printExportsInfoToSource = (
|
|
133
134
|
? "other exports"
|
134
135
|
: "exports";
|
135
136
|
source.add(
|
136
|
-
Template.toComment(
|
137
|
+
`${Template.toComment(
|
137
138
|
`${indent}${title} [${otherExportsInfo.getProvidedInfo()}] [${otherExportsInfo.getUsedInfo()}]${
|
138
139
|
target
|
139
140
|
? ` -> ${target.module.readableIdentifier(requestShortener)}`
|
140
141
|
: ""
|
141
142
|
}`
|
142
|
-
)
|
143
|
+
)}\n`
|
143
144
|
);
|
144
145
|
}
|
145
146
|
}
|
@@ -155,6 +156,7 @@ class ModuleInfoHeaderPlugin {
|
|
155
156
|
constructor(verbose = true) {
|
156
157
|
this._verbose = verbose;
|
157
158
|
}
|
159
|
+
|
158
160
|
/**
|
159
161
|
* @param {Compiler} compiler the compiler
|
160
162
|
* @returns {void}
|
@@ -162,8 +164,9 @@ class ModuleInfoHeaderPlugin {
|
|
162
164
|
apply(compiler) {
|
163
165
|
const { _verbose: verbose } = this;
|
164
166
|
compiler.hooks.compilation.tap("ModuleInfoHeaderPlugin", compilation => {
|
165
|
-
const
|
166
|
-
|
167
|
+
const javascriptHooks =
|
168
|
+
JavascriptModulesPlugin.getCompilationHooks(compilation);
|
169
|
+
javascriptHooks.renderModulePackage.tap(
|
167
170
|
"ModuleInfoHeaderPlugin",
|
168
171
|
(
|
169
172
|
moduleSource,
|
@@ -194,11 +197,7 @@ class ModuleInfoHeaderPlugin {
|
|
194
197
|
const source = new ConcatSource();
|
195
198
|
let header = cacheEntry.header;
|
196
199
|
if (header === undefined) {
|
197
|
-
|
198
|
-
const reqStr = req.replace(/\*\//g, "*_/");
|
199
|
-
const reqStrStar = "*".repeat(reqStr.length);
|
200
|
-
const headerStr = `/*!****${reqStrStar}****!*\\\n !*** ${reqStr} ***!\n \\****${reqStrStar}****/\n`;
|
201
|
-
header = new RawSource(headerStr);
|
200
|
+
header = this.generateHeader(module, requestShortener);
|
202
201
|
cacheEntry.header = header;
|
203
202
|
}
|
204
203
|
source.add(header);
|
@@ -206,11 +205,11 @@ class ModuleInfoHeaderPlugin {
|
|
206
205
|
const exportsType = /** @type {BuildMeta} */ (module.buildMeta)
|
207
206
|
.exportsType;
|
208
207
|
source.add(
|
209
|
-
Template.toComment(
|
208
|
+
`${Template.toComment(
|
210
209
|
exportsType
|
211
210
|
? `${exportsType} exports`
|
212
211
|
: "unknown exports (runtime-defined)"
|
213
|
-
)
|
212
|
+
)}\n`
|
214
213
|
);
|
215
214
|
if (exportsType) {
|
216
215
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
@@ -223,40 +222,93 @@ class ModuleInfoHeaderPlugin {
|
|
223
222
|
);
|
224
223
|
}
|
225
224
|
source.add(
|
226
|
-
Template.toComment(
|
225
|
+
`${Template.toComment(
|
227
226
|
`runtime requirements: ${joinIterableWithComma(
|
228
227
|
chunkGraph.getModuleRuntimeRequirements(module, chunk.runtime)
|
229
228
|
)}`
|
230
|
-
)
|
229
|
+
)}\n`
|
231
230
|
);
|
232
231
|
const optimizationBailout =
|
233
232
|
moduleGraph.getOptimizationBailout(module);
|
234
233
|
if (optimizationBailout) {
|
235
234
|
for (const text of optimizationBailout) {
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
} else {
|
240
|
-
code = text;
|
241
|
-
}
|
242
|
-
source.add(Template.toComment(`${code}`) + "\n");
|
235
|
+
const code =
|
236
|
+
typeof text === "function" ? text(requestShortener) : text;
|
237
|
+
source.add(`${Template.toComment(`${code}`)}\n`);
|
243
238
|
}
|
244
239
|
}
|
245
240
|
source.add(moduleSource);
|
246
241
|
return source;
|
242
|
+
}
|
243
|
+
source.add(moduleSource);
|
244
|
+
const cachedSource = new CachedSource(source);
|
245
|
+
cacheEntry.full.set(moduleSource, cachedSource);
|
246
|
+
return cachedSource;
|
247
|
+
}
|
248
|
+
);
|
249
|
+
javascriptHooks.chunkHash.tap(
|
250
|
+
"ModuleInfoHeaderPlugin",
|
251
|
+
(_chunk, hash) => {
|
252
|
+
hash.update("ModuleInfoHeaderPlugin");
|
253
|
+
hash.update("1");
|
254
|
+
}
|
255
|
+
);
|
256
|
+
const cssHooks = CssModulesPlugin.getCompilationHooks(compilation);
|
257
|
+
cssHooks.renderModulePackage.tap(
|
258
|
+
"ModuleInfoHeaderPlugin",
|
259
|
+
(moduleSource, module, { runtimeTemplate }) => {
|
260
|
+
const { requestShortener } = runtimeTemplate;
|
261
|
+
let cacheEntry;
|
262
|
+
let cache = caches.get(requestShortener);
|
263
|
+
if (cache === undefined) {
|
264
|
+
caches.set(requestShortener, (cache = new WeakMap()));
|
265
|
+
cache.set(
|
266
|
+
module,
|
267
|
+
(cacheEntry = { header: undefined, full: new WeakMap() })
|
268
|
+
);
|
247
269
|
} else {
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
270
|
+
cacheEntry = cache.get(module);
|
271
|
+
if (cacheEntry === undefined) {
|
272
|
+
cache.set(
|
273
|
+
module,
|
274
|
+
(cacheEntry = { header: undefined, full: new WeakMap() })
|
275
|
+
);
|
276
|
+
} else if (!verbose) {
|
277
|
+
const cachedSource = cacheEntry.full.get(moduleSource);
|
278
|
+
if (cachedSource !== undefined) return cachedSource;
|
279
|
+
}
|
252
280
|
}
|
281
|
+
const source = new ConcatSource();
|
282
|
+
let header = cacheEntry.header;
|
283
|
+
if (header === undefined) {
|
284
|
+
header = this.generateHeader(module, requestShortener);
|
285
|
+
cacheEntry.header = header;
|
286
|
+
}
|
287
|
+
source.add(header);
|
288
|
+
source.add(moduleSource);
|
289
|
+
const cachedSource = new CachedSource(source);
|
290
|
+
cacheEntry.full.set(moduleSource, cachedSource);
|
291
|
+
return cachedSource;
|
253
292
|
}
|
254
293
|
);
|
255
|
-
|
294
|
+
cssHooks.chunkHash.tap("ModuleInfoHeaderPlugin", (_chunk, hash) => {
|
256
295
|
hash.update("ModuleInfoHeaderPlugin");
|
257
296
|
hash.update("1");
|
258
297
|
});
|
259
298
|
});
|
260
299
|
}
|
300
|
+
|
301
|
+
/**
|
302
|
+
* @param {Module} module the module
|
303
|
+
* @param {RequestShortener} requestShortener request shortener
|
304
|
+
* @returns {RawSource} the header
|
305
|
+
*/
|
306
|
+
generateHeader(module, requestShortener) {
|
307
|
+
const req = module.readableIdentifier(requestShortener);
|
308
|
+
const reqStr = req.replace(/\*\//g, "*_/");
|
309
|
+
const reqStrStar = "*".repeat(reqStr.length);
|
310
|
+
const headerStr = `/*!****${reqStrStar}****!*\\\n !*** ${reqStr} ***!\n \\****${reqStrStar}****/\n`;
|
311
|
+
return new RawSource(headerStr);
|
312
|
+
}
|
261
313
|
}
|
262
314
|
module.exports = ModuleInfoHeaderPlugin;
|
package/lib/ModuleParseError.js
CHANGED
@@ -16,13 +16,13 @@ const WASM_HEADER = Buffer.from([0x00, 0x61, 0x73, 0x6d]);
|
|
16
16
|
class ModuleParseError extends WebpackError {
|
17
17
|
/**
|
18
18
|
* @param {string | Buffer} source source code
|
19
|
-
* @param {Error&any} err the parse error
|
19
|
+
* @param {Error & any} err the parse error
|
20
20
|
* @param {string[]} loaders the loaders used
|
21
21
|
* @param {string} type module type
|
22
22
|
*/
|
23
23
|
constructor(source, err, loaders, type) {
|
24
|
-
let message =
|
25
|
-
let loc
|
24
|
+
let message = `Module parse failed: ${err && err.message}`;
|
25
|
+
let loc;
|
26
26
|
|
27
27
|
if (
|
28
28
|
((Buffer.isBuffer(source) && source.slice(0, 4).equals(WASM_HEADER)) ||
|
@@ -57,7 +57,7 @@ class ModuleParseError extends WebpackError {
|
|
57
57
|
typeof err.loc === "object" &&
|
58
58
|
typeof err.loc.line === "number"
|
59
59
|
) {
|
60
|
-
|
60
|
+
const lineNumber = err.loc.line;
|
61
61
|
|
62
62
|
if (
|
63
63
|
Buffer.isBuffer(source) ||
|
@@ -72,15 +72,14 @@ class ModuleParseError extends WebpackError {
|
|
72
72
|
const theLine = sourceLines[lineNumber - 1];
|
73
73
|
const linesAfter = sourceLines.slice(lineNumber, lineNumber + 2);
|
74
74
|
|
75
|
-
message +=
|
76
|
-
|
77
|
-
|
78
|
-
linesAfter.map(l => `\n| ${l}`).join("");
|
75
|
+
message += `${linesBefore
|
76
|
+
.map(l => `\n| ${l}`)
|
77
|
+
.join("")}\n> ${theLine}${linesAfter.map(l => `\n| ${l}`).join("")}`;
|
79
78
|
}
|
80
79
|
|
81
80
|
loc = { start: err.loc };
|
82
81
|
} else if (err && err.stack) {
|
83
|
-
message +=
|
82
|
+
message += `\n${err.stack}`;
|
84
83
|
}
|
85
84
|
|
86
85
|
super(message);
|
@@ -17,7 +17,7 @@ class ModuleRestoreError extends WebpackError {
|
|
17
17
|
constructor(module, err) {
|
18
18
|
let message = "Module restore failed: ";
|
19
19
|
/** @type {string | undefined} */
|
20
|
-
|
20
|
+
const details = undefined;
|
21
21
|
if (err !== null && typeof err === "object") {
|
22
22
|
if (typeof err.stack === "string" && err.stack) {
|
23
23
|
const stack = err.stack;
|
package/lib/ModuleStoreError.js
CHANGED
@@ -17,7 +17,7 @@ class ModuleStoreError extends WebpackError {
|
|
17
17
|
constructor(module, err) {
|
18
18
|
let message = "Module storing failed: ";
|
19
19
|
/** @type {string | undefined} */
|
20
|
-
|
20
|
+
const details = undefined;
|
21
21
|
if (err !== null && typeof err === "object") {
|
22
22
|
if (typeof err.stack === "string" && err.stack) {
|
23
23
|
const stack = err.stack;
|
package/lib/ModuleTemplate.js
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
const util = require("util");
|
9
9
|
const memoize = require("./util/memoize");
|
10
10
|
|
11
|
+
/** @typedef {import("tapable").Tap} Tap */
|
11
12
|
/** @typedef {import("webpack-sources").Source} Source */
|
12
13
|
/** @typedef {import("./Chunk")} Chunk */
|
13
14
|
/** @typedef {import("./ChunkGraph")} ChunkGraph */
|
@@ -16,8 +17,14 @@ const memoize = require("./util/memoize");
|
|
16
17
|
/** @typedef {import("./Module")} Module */
|
17
18
|
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
18
19
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
20
|
+
/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
19
21
|
/** @typedef {import("./util/Hash")} Hash */
|
20
22
|
|
23
|
+
/**
|
24
|
+
* @template T
|
25
|
+
* @typedef {import("tapable").IfSet<T>} IfSet
|
26
|
+
*/
|
27
|
+
|
21
28
|
const getJavascriptModulesPlugin = memoize(() =>
|
22
29
|
require("./javascript/JavascriptModulesPlugin")
|
23
30
|
);
|
@@ -34,6 +41,11 @@ class ModuleTemplate {
|
|
34
41
|
this.hooks = Object.freeze({
|
35
42
|
content: {
|
36
43
|
tap: util.deprecate(
|
44
|
+
/**
|
45
|
+
* @template AdditionalOptions
|
46
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
47
|
+
* @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
|
48
|
+
*/
|
37
49
|
(options, fn) => {
|
38
50
|
getJavascriptModulesPlugin()
|
39
51
|
.getCompilationHooks(compilation)
|
@@ -54,6 +66,11 @@ class ModuleTemplate {
|
|
54
66
|
},
|
55
67
|
module: {
|
56
68
|
tap: util.deprecate(
|
69
|
+
/**
|
70
|
+
* @template AdditionalOptions
|
71
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
72
|
+
* @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
|
73
|
+
*/
|
57
74
|
(options, fn) => {
|
58
75
|
getJavascriptModulesPlugin()
|
59
76
|
.getCompilationHooks(compilation)
|
@@ -74,6 +91,11 @@ class ModuleTemplate {
|
|
74
91
|
},
|
75
92
|
render: {
|
76
93
|
tap: util.deprecate(
|
94
|
+
/**
|
95
|
+
* @template AdditionalOptions
|
96
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
97
|
+
* @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
|
98
|
+
*/
|
77
99
|
(options, fn) => {
|
78
100
|
getJavascriptModulesPlugin()
|
79
101
|
.getCompilationHooks(compilation)
|
@@ -94,6 +116,11 @@ class ModuleTemplate {
|
|
94
116
|
},
|
95
117
|
package: {
|
96
118
|
tap: util.deprecate(
|
119
|
+
/**
|
120
|
+
* @template AdditionalOptions
|
121
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
122
|
+
* @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
|
123
|
+
*/
|
97
124
|
(options, fn) => {
|
98
125
|
getJavascriptModulesPlugin()
|
99
126
|
.getCompilationHooks(compilation)
|
@@ -114,6 +141,11 @@ class ModuleTemplate {
|
|
114
141
|
},
|
115
142
|
hash: {
|
116
143
|
tap: util.deprecate(
|
144
|
+
/**
|
145
|
+
* @template AdditionalOptions
|
146
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
147
|
+
* @param {function(Hash): void} fn fn
|
148
|
+
*/
|
117
149
|
(options, fn) => {
|
118
150
|
compilation.hooks.fullHash.tap(options, fn);
|
119
151
|
},
|
@@ -129,7 +161,7 @@ Object.defineProperty(ModuleTemplate.prototype, "runtimeTemplate", {
|
|
129
161
|
get: util.deprecate(
|
130
162
|
/**
|
131
163
|
* @this {ModuleTemplate}
|
132
|
-
* @returns {
|
164
|
+
* @returns {RuntimeTemplate} output options
|
133
165
|
*/
|
134
166
|
function () {
|
135
167
|
return this._runtimeTemplate;
|
@@ -31,7 +31,6 @@ const JSON_MODULE_TYPE = "json";
|
|
31
31
|
/**
|
32
32
|
* @type {Readonly<"webassembly/async">}
|
33
33
|
* This is the module type used for WebAssembly modules. In webpack 5 they are always treated as async modules.
|
34
|
-
*
|
35
34
|
*/
|
36
35
|
const WEBASSEMBLY_MODULE_TYPE_ASYNC = "webassembly/async";
|
37
36
|
|
@@ -144,26 +143,26 @@ const WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = "lazy-compilation-proxy";
|
|
144
143
|
/** @typedef {string} UnknownModuleTypes */
|
145
144
|
/** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes | CSSModuleTypes | AssetModuleTypes | WebpackModuleTypes | UnknownModuleTypes} ModuleTypes */
|
146
145
|
|
147
|
-
exports.ASSET_MODULE_TYPE = ASSET_MODULE_TYPE;
|
148
|
-
exports.ASSET_MODULE_TYPE_RAW_DATA_URL = ASSET_MODULE_TYPE_RAW_DATA_URL;
|
149
|
-
exports.ASSET_MODULE_TYPE_SOURCE = ASSET_MODULE_TYPE_SOURCE;
|
150
|
-
exports.ASSET_MODULE_TYPE_RESOURCE = ASSET_MODULE_TYPE_RESOURCE;
|
151
|
-
exports.ASSET_MODULE_TYPE_INLINE = ASSET_MODULE_TYPE_INLINE;
|
152
|
-
exports.JAVASCRIPT_MODULE_TYPE_AUTO = JAVASCRIPT_MODULE_TYPE_AUTO;
|
153
|
-
exports.JAVASCRIPT_MODULE_TYPE_DYNAMIC = JAVASCRIPT_MODULE_TYPE_DYNAMIC;
|
154
|
-
exports.JAVASCRIPT_MODULE_TYPE_ESM = JAVASCRIPT_MODULE_TYPE_ESM;
|
155
|
-
exports.JSON_MODULE_TYPE = JSON_MODULE_TYPE;
|
156
|
-
exports.WEBASSEMBLY_MODULE_TYPE_ASYNC = WEBASSEMBLY_MODULE_TYPE_ASYNC;
|
157
|
-
exports.WEBASSEMBLY_MODULE_TYPE_SYNC = WEBASSEMBLY_MODULE_TYPE_SYNC;
|
158
|
-
exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE;
|
159
|
-
exports.CSS_MODULE_TYPE_GLOBAL = CSS_MODULE_TYPE_GLOBAL;
|
160
|
-
exports.CSS_MODULE_TYPE_MODULE = CSS_MODULE_TYPE_MODULE;
|
161
|
-
exports.CSS_MODULE_TYPE_AUTO = CSS_MODULE_TYPE_AUTO;
|
162
|
-
exports.WEBPACK_MODULE_TYPE_RUNTIME = WEBPACK_MODULE_TYPE_RUNTIME;
|
163
|
-
exports.WEBPACK_MODULE_TYPE_FALLBACK = WEBPACK_MODULE_TYPE_FALLBACK;
|
164
|
-
exports.WEBPACK_MODULE_TYPE_REMOTE = WEBPACK_MODULE_TYPE_REMOTE;
|
165
|
-
exports.WEBPACK_MODULE_TYPE_PROVIDE = WEBPACK_MODULE_TYPE_PROVIDE;
|
166
|
-
exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE =
|
146
|
+
module.exports.ASSET_MODULE_TYPE = ASSET_MODULE_TYPE;
|
147
|
+
module.exports.ASSET_MODULE_TYPE_RAW_DATA_URL = ASSET_MODULE_TYPE_RAW_DATA_URL;
|
148
|
+
module.exports.ASSET_MODULE_TYPE_SOURCE = ASSET_MODULE_TYPE_SOURCE;
|
149
|
+
module.exports.ASSET_MODULE_TYPE_RESOURCE = ASSET_MODULE_TYPE_RESOURCE;
|
150
|
+
module.exports.ASSET_MODULE_TYPE_INLINE = ASSET_MODULE_TYPE_INLINE;
|
151
|
+
module.exports.JAVASCRIPT_MODULE_TYPE_AUTO = JAVASCRIPT_MODULE_TYPE_AUTO;
|
152
|
+
module.exports.JAVASCRIPT_MODULE_TYPE_DYNAMIC = JAVASCRIPT_MODULE_TYPE_DYNAMIC;
|
153
|
+
module.exports.JAVASCRIPT_MODULE_TYPE_ESM = JAVASCRIPT_MODULE_TYPE_ESM;
|
154
|
+
module.exports.JSON_MODULE_TYPE = JSON_MODULE_TYPE;
|
155
|
+
module.exports.WEBASSEMBLY_MODULE_TYPE_ASYNC = WEBASSEMBLY_MODULE_TYPE_ASYNC;
|
156
|
+
module.exports.WEBASSEMBLY_MODULE_TYPE_SYNC = WEBASSEMBLY_MODULE_TYPE_SYNC;
|
157
|
+
module.exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE;
|
158
|
+
module.exports.CSS_MODULE_TYPE_GLOBAL = CSS_MODULE_TYPE_GLOBAL;
|
159
|
+
module.exports.CSS_MODULE_TYPE_MODULE = CSS_MODULE_TYPE_MODULE;
|
160
|
+
module.exports.CSS_MODULE_TYPE_AUTO = CSS_MODULE_TYPE_AUTO;
|
161
|
+
module.exports.WEBPACK_MODULE_TYPE_RUNTIME = WEBPACK_MODULE_TYPE_RUNTIME;
|
162
|
+
module.exports.WEBPACK_MODULE_TYPE_FALLBACK = WEBPACK_MODULE_TYPE_FALLBACK;
|
163
|
+
module.exports.WEBPACK_MODULE_TYPE_REMOTE = WEBPACK_MODULE_TYPE_REMOTE;
|
164
|
+
module.exports.WEBPACK_MODULE_TYPE_PROVIDE = WEBPACK_MODULE_TYPE_PROVIDE;
|
165
|
+
module.exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE =
|
167
166
|
WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE;
|
168
|
-
exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY =
|
167
|
+
module.exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY =
|
169
168
|
WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY;
|
package/lib/ModuleWarning.js
CHANGED
@@ -20,11 +20,7 @@ class ModuleWarning extends WebpackError {
|
|
20
20
|
constructor(warning, { from = null } = {}) {
|
21
21
|
let message = "Module Warning";
|
22
22
|
|
23
|
-
|
24
|
-
message += ` (from ${from}):\n`;
|
25
|
-
} else {
|
26
|
-
message += ": ";
|
27
|
-
}
|
23
|
+
message += from ? ` (from ${from}):\n` : ": ";
|
28
24
|
|
29
25
|
if (warning && typeof warning === "object" && warning.message) {
|
30
26
|
message += warning.message;
|
package/lib/MultiCompiler.js
CHANGED
@@ -91,6 +91,7 @@ module.exports = class MultiCompiler {
|
|
91
91
|
const compiler = this.compilers[index];
|
92
92
|
const compilerIndex = index;
|
93
93
|
let compilerDone = false;
|
94
|
+
// eslint-disable-next-line no-loop-func
|
94
95
|
compiler.hooks.done.tap("MultiCompiler", stats => {
|
95
96
|
if (!compilerDone) {
|
96
97
|
compilerDone = true;
|
@@ -103,6 +104,7 @@ module.exports = class MultiCompiler {
|
|
103
104
|
);
|
104
105
|
}
|
105
106
|
});
|
107
|
+
// eslint-disable-next-line no-loop-func
|
106
108
|
compiler.hooks.invalid.tap("MultiCompiler", () => {
|
107
109
|
if (compilerDone) {
|
108
110
|
compilerDone = false;
|
@@ -172,18 +174,6 @@ module.exports = class MultiCompiler {
|
|
172
174
|
throw new Error("Cannot read inputFileSystem of a MultiCompiler");
|
173
175
|
}
|
174
176
|
|
175
|
-
get outputFileSystem() {
|
176
|
-
throw new Error("Cannot read outputFileSystem of a MultiCompiler");
|
177
|
-
}
|
178
|
-
|
179
|
-
get watchFileSystem() {
|
180
|
-
throw new Error("Cannot read watchFileSystem of a MultiCompiler");
|
181
|
-
}
|
182
|
-
|
183
|
-
get intermediateFileSystem() {
|
184
|
-
throw new Error("Cannot read outputFileSystem of a MultiCompiler");
|
185
|
-
}
|
186
|
-
|
187
177
|
/**
|
188
178
|
* @param {InputFileSystem} value the new input file system
|
189
179
|
*/
|
@@ -193,6 +183,10 @@ module.exports = class MultiCompiler {
|
|
193
183
|
}
|
194
184
|
}
|
195
185
|
|
186
|
+
get outputFileSystem() {
|
187
|
+
throw new Error("Cannot read outputFileSystem of a MultiCompiler");
|
188
|
+
}
|
189
|
+
|
196
190
|
/**
|
197
191
|
* @param {OutputFileSystem} value the new output file system
|
198
192
|
*/
|
@@ -202,6 +196,10 @@ module.exports = class MultiCompiler {
|
|
202
196
|
}
|
203
197
|
}
|
204
198
|
|
199
|
+
get watchFileSystem() {
|
200
|
+
throw new Error("Cannot read watchFileSystem of a MultiCompiler");
|
201
|
+
}
|
202
|
+
|
205
203
|
/**
|
206
204
|
* @param {WatchFileSystem} value the new watch file system
|
207
205
|
*/
|
@@ -220,6 +218,10 @@ module.exports = class MultiCompiler {
|
|
220
218
|
}
|
221
219
|
}
|
222
220
|
|
221
|
+
get intermediateFileSystem() {
|
222
|
+
throw new Error("Cannot read outputFileSystem of a MultiCompiler");
|
223
|
+
}
|
224
|
+
|
223
225
|
/**
|
224
226
|
* @param {string | (function(): string)} name name of the logger, or function called once to get the logger name
|
225
227
|
* @returns {Logger} a logger with that name
|
@@ -263,16 +265,11 @@ module.exports = class MultiCompiler {
|
|
263
265
|
* @param {{source: Compiler, target: Compiler}} e2 edge 2
|
264
266
|
* @returns {number} result
|
265
267
|
*/
|
266
|
-
const sortEdges = (e1, e2) =>
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
) ||
|
272
|
-
/** @type {string} */
|
273
|
-
(e1.target.name).localeCompare(/** @type {string} */ (e2.target.name))
|
274
|
-
);
|
275
|
-
};
|
268
|
+
const sortEdges = (e1, e2) =>
|
269
|
+
/** @type {string} */
|
270
|
+
(e1.source.name).localeCompare(/** @type {string} */ (e2.source.name)) ||
|
271
|
+
/** @type {string} */
|
272
|
+
(e1.target.name).localeCompare(/** @type {string} */ (e2.target.name));
|
276
273
|
for (const source of this.compilers) {
|
277
274
|
const dependencies = this.dependencies.get(source);
|
278
275
|
if (dependencies) {
|
@@ -340,8 +337,8 @@ module.exports = class MultiCompiler {
|
|
340
337
|
* @returns {Compiler[]} compilers
|
341
338
|
*/
|
342
339
|
const getReadyCompilers = () => {
|
343
|
-
|
344
|
-
|
340
|
+
const readyCompilers = [];
|
341
|
+
const list = remainingCompilers;
|
345
342
|
remainingCompilers = [];
|
346
343
|
for (const c of list) {
|
347
344
|
const dependencies = this.dependencies.get(c);
|
@@ -514,7 +511,7 @@ module.exports = class MultiCompiler {
|
|
514
511
|
|
515
512
|
/** @type {SetupResult[]} */
|
516
513
|
const setupResults = [];
|
517
|
-
nodes.
|
514
|
+
for (const [i, node] of nodes.entries()) {
|
518
515
|
setupResults.push(
|
519
516
|
(node.setupResult = setup(
|
520
517
|
node.compiler,
|
@@ -525,7 +522,7 @@ module.exports = class MultiCompiler {
|
|
525
522
|
() => nodeInvalid(node)
|
526
523
|
))
|
527
524
|
);
|
528
|
-
}
|
525
|
+
}
|
529
526
|
let processing = true;
|
530
527
|
const processQueue = () => {
|
531
528
|
if (processing) return;
|
@@ -533,6 +530,7 @@ module.exports = class MultiCompiler {
|
|
533
530
|
process.nextTick(processQueueWorker);
|
534
531
|
};
|
535
532
|
const processQueueWorker = () => {
|
533
|
+
// eslint-disable-next-line no-unmodified-loop-condition
|
536
534
|
while (running < parallelism && queue.length > 0 && !errored) {
|
537
535
|
const node = /** @type {Node} */ (queue.dequeue());
|
538
536
|
if (
|