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
@@ -30,9 +30,8 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
30
30
|
* @param {string[]} accessor the accessor to convert to path
|
31
31
|
* @returns {string} the path
|
32
32
|
*/
|
33
|
-
const accessorToObjectAccess = accessor =>
|
34
|
-
|
35
|
-
};
|
33
|
+
const accessorToObjectAccess = accessor =>
|
34
|
+
accessor.map(a => `[${JSON.stringify(a)}]`).join("");
|
36
35
|
|
37
36
|
/**
|
38
37
|
* @param {string|undefined} base the path prefix
|
@@ -157,18 +156,17 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
157
156
|
* @param {string} str the string to replace
|
158
157
|
* @returns {string} the replaced keys
|
159
158
|
*/
|
160
|
-
const replaceKeys = str =>
|
161
|
-
|
159
|
+
const replaceKeys = str =>
|
160
|
+
compilation.getPath(str, {
|
162
161
|
chunk
|
163
162
|
});
|
164
|
-
};
|
165
163
|
|
166
164
|
/**
|
167
165
|
* @param {ExternalModule[]} modules external modules
|
168
166
|
* @returns {string} result
|
169
167
|
*/
|
170
|
-
const externalsDepsArray = modules =>
|
171
|
-
|
168
|
+
const externalsDepsArray = modules =>
|
169
|
+
`[${replaceKeys(
|
172
170
|
modules
|
173
171
|
.map(m =>
|
174
172
|
JSON.stringify(
|
@@ -180,14 +178,13 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
180
178
|
)
|
181
179
|
.join(", ")
|
182
180
|
)}]`;
|
183
|
-
};
|
184
181
|
|
185
182
|
/**
|
186
183
|
* @param {ExternalModule[]} modules external modules
|
187
184
|
* @returns {string} result
|
188
185
|
*/
|
189
|
-
const externalsRootArray = modules =>
|
190
|
-
|
186
|
+
const externalsRootArray = modules =>
|
187
|
+
replaceKeys(
|
191
188
|
modules
|
192
189
|
.map(m => {
|
193
190
|
let request = m.request;
|
@@ -199,14 +196,13 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
199
196
|
})
|
200
197
|
.join(", ")
|
201
198
|
);
|
202
|
-
};
|
203
199
|
|
204
200
|
/**
|
205
201
|
* @param {string} type the type
|
206
202
|
* @returns {string} external require array
|
207
203
|
*/
|
208
|
-
const externalsRequireArray = type =>
|
209
|
-
|
204
|
+
const externalsRequireArray = type =>
|
205
|
+
replaceKeys(
|
210
206
|
externals
|
211
207
|
.map(m => {
|
212
208
|
let expr;
|
@@ -218,16 +214,14 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
218
214
|
}
|
219
215
|
if (request === undefined) {
|
220
216
|
throw new Error(
|
221
|
-
|
217
|
+
`Missing external configuration for type:${type}`
|
222
218
|
);
|
223
219
|
}
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
expr = `require(${JSON.stringify(request)})`;
|
230
|
-
}
|
220
|
+
expr = Array.isArray(request)
|
221
|
+
? `require(${JSON.stringify(
|
222
|
+
request[0]
|
223
|
+
)})${accessorToObjectAccess(request.slice(1))}`
|
224
|
+
: `require(${JSON.stringify(request)})`;
|
231
225
|
if (m.isOptional(moduleGraph)) {
|
232
226
|
expr = `(function webpackLoadOptionalExternalModule() { try { return ${expr}; } catch(e) {} }())`;
|
233
227
|
}
|
@@ -235,14 +229,13 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
235
229
|
})
|
236
230
|
.join(", ")
|
237
231
|
);
|
238
|
-
};
|
239
232
|
|
240
233
|
/**
|
241
234
|
* @param {ExternalModule[]} modules external modules
|
242
235
|
* @returns {string} arguments
|
243
236
|
*/
|
244
|
-
const externalsArguments = modules =>
|
245
|
-
|
237
|
+
const externalsArguments = modules =>
|
238
|
+
modules
|
246
239
|
.map(
|
247
240
|
m =>
|
248
241
|
`__WEBPACK_EXTERNAL_MODULE_${Template.toIdentifier(
|
@@ -250,26 +243,24 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
250
243
|
)}__`
|
251
244
|
)
|
252
245
|
.join(", ");
|
253
|
-
};
|
254
246
|
|
255
247
|
/**
|
256
248
|
* @param {string| string[]} library library name
|
257
249
|
* @returns {string} stringified library name
|
258
250
|
*/
|
259
|
-
const libraryName = library =>
|
260
|
-
|
251
|
+
const libraryName = library =>
|
252
|
+
JSON.stringify(
|
261
253
|
replaceKeys(/** @type {string[]} */ ([]).concat(library).pop())
|
262
254
|
);
|
263
|
-
};
|
264
255
|
|
265
256
|
let amdFactory;
|
266
257
|
if (optionalExternals.length > 0) {
|
267
258
|
const wrapperArguments = externalsArguments(requiredExternals);
|
268
259
|
const factoryArguments =
|
269
260
|
requiredExternals.length > 0
|
270
|
-
? externalsArguments(requiredExternals)
|
271
|
-
|
272
|
-
|
261
|
+
? `${externalsArguments(requiredExternals)}, ${externalsRootArray(
|
262
|
+
optionalExternals
|
263
|
+
)}`
|
273
264
|
: externalsRootArray(optionalExternals);
|
274
265
|
amdFactory =
|
275
266
|
`function webpackLoadOptionalExternalModuleAmd(${wrapperArguments}) {\n` +
|
@@ -288,72 +279,55 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
288
279
|
const getAuxiliaryComment = type => {
|
289
280
|
if (auxiliaryComment) {
|
290
281
|
if (typeof auxiliaryComment === "string")
|
291
|
-
return
|
292
|
-
if (auxiliaryComment[type])
|
293
|
-
return "\t//" + auxiliaryComment[type] + "\n";
|
282
|
+
return `\t//${auxiliaryComment}\n`;
|
283
|
+
if (auxiliaryComment[type]) return `\t//${auxiliaryComment[type]}\n`;
|
294
284
|
}
|
295
285
|
return "";
|
296
286
|
};
|
297
287
|
|
298
288
|
return new ConcatSource(
|
299
289
|
new OriginalSource(
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
externalsDepsArray(requiredExternals)
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
libraryName(
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
accessorAccess("root", names.root || names.commonjs)
|
342
|
-
) +
|
343
|
-
" = factory(" +
|
344
|
-
externalsRootArray(externals) +
|
345
|
-
");\n"
|
346
|
-
: " else {\n" +
|
347
|
-
(externals.length > 0
|
348
|
-
? " var a = typeof exports === 'object' ? factory(" +
|
349
|
-
externalsRequireArray("commonjs") +
|
350
|
-
") : factory(" +
|
351
|
-
externalsRootArray(externals) +
|
352
|
-
");\n"
|
353
|
-
: " var a = factory();\n") +
|
354
|
-
" for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n" +
|
355
|
-
" }\n") +
|
356
|
-
`})(${runtimeTemplate.outputOptions.globalObject}, ${
|
290
|
+
`(function webpackUniversalModuleDefinition(root, factory) {\n${getAuxiliaryComment(
|
291
|
+
"commonjs2"
|
292
|
+
)} if(typeof exports === 'object' && typeof module === 'object')\n` +
|
293
|
+
` module.exports = factory(${externalsRequireArray(
|
294
|
+
"commonjs2"
|
295
|
+
)});\n${getAuxiliaryComment(
|
296
|
+
"amd"
|
297
|
+
)} else if(typeof define === 'function' && define.amd)\n${
|
298
|
+
requiredExternals.length > 0
|
299
|
+
? names.amd && namedDefine === true
|
300
|
+
? ` define(${libraryName(names.amd)}, ${externalsDepsArray(
|
301
|
+
requiredExternals
|
302
|
+
)}, ${amdFactory});\n`
|
303
|
+
: ` define(${externalsDepsArray(requiredExternals)}, ${
|
304
|
+
amdFactory
|
305
|
+
});\n`
|
306
|
+
: names.amd && namedDefine === true
|
307
|
+
? ` define(${libraryName(names.amd)}, [], ${amdFactory});\n`
|
308
|
+
: ` define([], ${amdFactory});\n`
|
309
|
+
}${
|
310
|
+
names.root || names.commonjs
|
311
|
+
? `${getAuxiliaryComment(
|
312
|
+
"commonjs"
|
313
|
+
)} else if(typeof exports === 'object')\n` +
|
314
|
+
` exports[${libraryName(
|
315
|
+
names.commonjs || names.root
|
316
|
+
)}] = factory(${externalsRequireArray(
|
317
|
+
"commonjs"
|
318
|
+
)});\n${getAuxiliaryComment("root")} else\n` +
|
319
|
+
` ${replaceKeys(
|
320
|
+
accessorAccess("root", names.root || names.commonjs)
|
321
|
+
)} = factory(${externalsRootArray(externals)});\n`
|
322
|
+
: ` else {\n${
|
323
|
+
externals.length > 0
|
324
|
+
? ` var a = typeof exports === 'object' ? factory(${externalsRequireArray(
|
325
|
+
"commonjs"
|
326
|
+
)}) : factory(${externalsRootArray(externals)});\n`
|
327
|
+
: " var a = factory();\n"
|
328
|
+
} for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n` +
|
329
|
+
" }\n"
|
330
|
+
}})(${runtimeTemplate.outputOptions.globalObject}, ${
|
357
331
|
runtimeTemplate.supportsArrowFunction()
|
358
332
|
? `(${externalsArguments(externals)}) =>`
|
359
333
|
: `function(${externalsArguments(externals)})`
|
package/lib/logging/Logger.js
CHANGED
@@ -27,7 +27,7 @@ const LogType = Object.freeze({
|
|
27
27
|
status: /** @type {"status"} */ ("status") // message, arguments
|
28
28
|
});
|
29
29
|
|
30
|
-
exports.LogType = LogType;
|
30
|
+
module.exports.LogType = LogType;
|
31
31
|
|
32
32
|
/** @typedef {typeof LogType[keyof typeof LogType]} LogTypeEnum */
|
33
33
|
|
@@ -45,26 +45,45 @@ class WebpackLogger {
|
|
45
45
|
this.getChildLogger = getChildLogger;
|
46
46
|
}
|
47
47
|
|
48
|
+
/**
|
49
|
+
* @param {...any} args args
|
50
|
+
*/
|
48
51
|
error(...args) {
|
49
52
|
this[LOG_SYMBOL](LogType.error, args);
|
50
53
|
}
|
51
54
|
|
55
|
+
/**
|
56
|
+
* @param {...any} args args
|
57
|
+
*/
|
52
58
|
warn(...args) {
|
53
59
|
this[LOG_SYMBOL](LogType.warn, args);
|
54
60
|
}
|
55
61
|
|
62
|
+
/**
|
63
|
+
* @param {...any} args args
|
64
|
+
*/
|
56
65
|
info(...args) {
|
57
66
|
this[LOG_SYMBOL](LogType.info, args);
|
58
67
|
}
|
59
68
|
|
69
|
+
/**
|
70
|
+
* @param {...any} args args
|
71
|
+
*/
|
60
72
|
log(...args) {
|
61
73
|
this[LOG_SYMBOL](LogType.log, args);
|
62
74
|
}
|
63
75
|
|
76
|
+
/**
|
77
|
+
* @param {...any} args args
|
78
|
+
*/
|
64
79
|
debug(...args) {
|
65
80
|
this[LOG_SYMBOL](LogType.debug, args);
|
66
81
|
}
|
67
82
|
|
83
|
+
/**
|
84
|
+
* @param {any} assertion assertion
|
85
|
+
* @param {...any} args args
|
86
|
+
*/
|
68
87
|
assert(assertion, ...args) {
|
69
88
|
if (!assertion) {
|
70
89
|
this[LOG_SYMBOL](LogType.error, args);
|
@@ -79,20 +98,29 @@ class WebpackLogger {
|
|
79
98
|
this[LOG_SYMBOL](LogType.clear);
|
80
99
|
}
|
81
100
|
|
101
|
+
/**
|
102
|
+
* @param {...any} args args
|
103
|
+
*/
|
82
104
|
status(...args) {
|
83
105
|
this[LOG_SYMBOL](LogType.status, args);
|
84
106
|
}
|
85
107
|
|
108
|
+
/**
|
109
|
+
* @param {...any} args args
|
110
|
+
*/
|
86
111
|
group(...args) {
|
87
112
|
this[LOG_SYMBOL](LogType.group, args);
|
88
113
|
}
|
89
114
|
|
115
|
+
/**
|
116
|
+
* @param {...any} args args
|
117
|
+
*/
|
90
118
|
groupCollapsed(...args) {
|
91
119
|
this[LOG_SYMBOL](LogType.groupCollapsed, args);
|
92
120
|
}
|
93
121
|
|
94
|
-
groupEnd(
|
95
|
-
this[LOG_SYMBOL](LogType.groupEnd
|
122
|
+
groupEnd() {
|
123
|
+
this[LOG_SYMBOL](LogType.groupEnd);
|
96
124
|
}
|
97
125
|
|
98
126
|
/**
|
@@ -185,4 +213,4 @@ class WebpackLogger {
|
|
185
213
|
}
|
186
214
|
}
|
187
215
|
|
188
|
-
exports.Logger = WebpackLogger;
|
216
|
+
module.exports.Logger = WebpackLogger;
|
@@ -12,7 +12,7 @@ const { LogType } = require("./Logger");
|
|
12
12
|
/** @typedef {import("./Logger").LogTypeEnum} LogTypeEnum */
|
13
13
|
|
14
14
|
/** @typedef {function(string): boolean} FilterFunction */
|
15
|
-
/** @typedef {function(string, LogTypeEnum, any[]): void} LoggingFunction */
|
15
|
+
/** @typedef {function(string, LogTypeEnum, any[]=): void} LoggingFunction */
|
16
16
|
|
17
17
|
/**
|
18
18
|
* @typedef {object} LoggerConsole
|
@@ -95,7 +95,7 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
95
95
|
/**
|
96
96
|
* @param {string} name name of the logger
|
97
97
|
* @param {LogTypeEnum} type type of the log entry
|
98
|
-
* @param {any[]} args arguments of the log entry
|
98
|
+
* @param {any[]=} args arguments of the log entry
|
99
99
|
* @returns {void}
|
100
100
|
*/
|
101
101
|
const logger = (name, type, args) => {
|
@@ -103,12 +103,10 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
103
103
|
if (Array.isArray(args)) {
|
104
104
|
if (args.length > 0 && typeof args[0] === "string") {
|
105
105
|
return [`[${name}] ${args[0]}`, ...args.slice(1)];
|
106
|
-
} else {
|
107
|
-
return [`[${name}]`, ...args];
|
108
106
|
}
|
109
|
-
|
110
|
-
return [];
|
107
|
+
return [`[${name}]`, ...args];
|
111
108
|
}
|
109
|
+
return [];
|
112
110
|
};
|
113
111
|
const debug = debugFilters.some(f => f(name));
|
114
112
|
switch (type) {
|
@@ -167,8 +165,11 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
167
165
|
break;
|
168
166
|
case LogType.time: {
|
169
167
|
if (!debug && loglevel > LogLevel.log) return;
|
170
|
-
const
|
171
|
-
|
168
|
+
const [label, start, end] =
|
169
|
+
/** @type {[string, number, number]} */
|
170
|
+
(args);
|
171
|
+
const ms = start * 1000 + end / 1000000;
|
172
|
+
const msg = `[${name}] ${label}: ${ms} ms`;
|
172
173
|
if (typeof console.logTime === "function") {
|
173
174
|
console.logTime(msg);
|
174
175
|
} else {
|
@@ -195,15 +196,13 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
195
196
|
case LogType.status:
|
196
197
|
if (!debug && loglevel > LogLevel.info) return;
|
197
198
|
if (typeof console.status === "function") {
|
198
|
-
if (args.length === 0) {
|
199
|
+
if (!args || args.length === 0) {
|
199
200
|
console.status();
|
200
201
|
} else {
|
201
202
|
console.status(...labeledArgs());
|
202
203
|
}
|
203
|
-
} else {
|
204
|
-
|
205
|
-
console.info(...labeledArgs());
|
206
|
-
}
|
204
|
+
} else if (args && args.length !== 0) {
|
205
|
+
console.info(...labeledArgs());
|
207
206
|
}
|
208
207
|
break;
|
209
208
|
default:
|
package/lib/logging/runtime.js
CHANGED
@@ -10,7 +10,7 @@ const { Logger } = require("./Logger");
|
|
10
10
|
const createConsoleLogger = require("./createConsoleLogger");
|
11
11
|
|
12
12
|
/** @type {createConsoleLogger.LoggerOptions} */
|
13
|
-
|
13
|
+
const currentDefaultLoggerOptions = {
|
14
14
|
level: "info",
|
15
15
|
debug: false,
|
16
16
|
console
|
@@ -21,26 +21,25 @@ let currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
|
|
21
21
|
* @param {string} name name of the logger
|
22
22
|
* @returns {Logger} a logger
|
23
23
|
*/
|
24
|
-
exports.getLogger = name =>
|
25
|
-
|
24
|
+
module.exports.getLogger = name =>
|
25
|
+
new Logger(
|
26
26
|
(type, args) => {
|
27
|
-
if (exports.hooks.log.call(name, type, args) === undefined) {
|
27
|
+
if (module.exports.hooks.log.call(name, type, args) === undefined) {
|
28
28
|
currentDefaultLogger(name, type, args);
|
29
29
|
}
|
30
30
|
},
|
31
|
-
childName => exports.getLogger(`${name}/${childName}`)
|
31
|
+
childName => module.exports.getLogger(`${name}/${childName}`)
|
32
32
|
);
|
33
|
-
};
|
34
33
|
|
35
34
|
/**
|
36
35
|
* @param {createConsoleLogger.LoggerOptions} options new options, merge with old options
|
37
36
|
* @returns {void}
|
38
37
|
*/
|
39
|
-
exports.configureDefaultLogger = options => {
|
38
|
+
module.exports.configureDefaultLogger = options => {
|
40
39
|
Object.assign(currentDefaultLoggerOptions, options);
|
41
40
|
currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
|
42
41
|
};
|
43
42
|
|
44
|
-
exports.hooks = {
|
43
|
+
module.exports.hooks = {
|
45
44
|
log: new SyncBailHook(["origin", "type", "args"])
|
46
45
|
};
|
@@ -28,17 +28,15 @@ const truncateArgs = (args, maxLength) => {
|
|
28
28
|
if (availableLength >= args[0].length) {
|
29
29
|
return args;
|
30
30
|
} else if (availableLength > 3) {
|
31
|
-
return [
|
32
|
-
} else {
|
33
|
-
return [args[0].slice(-availableLength)];
|
31
|
+
return [`...${args[0].slice(-availableLength + 3)}`];
|
34
32
|
}
|
33
|
+
return [args[0].slice(-availableLength)];
|
35
34
|
}
|
36
35
|
|
37
36
|
// Check if there is space for at least 4 chars per arg
|
38
37
|
if (availableLength < arraySum(lengths.map(i => Math.min(i, 6)))) {
|
39
38
|
// remove args
|
40
|
-
if (args.length > 1)
|
41
|
-
return truncateArgs(args.slice(0, args.length - 1), maxLength);
|
39
|
+
if (args.length > 1) return truncateArgs(args.slice(0, -1), maxLength);
|
42
40
|
return [];
|
43
41
|
}
|
44
42
|
|
@@ -74,12 +72,11 @@ const truncateArgs = (args, maxLength) => {
|
|
74
72
|
if (str.length === length) {
|
75
73
|
return str;
|
76
74
|
} else if (length > 5) {
|
77
|
-
return
|
75
|
+
return `...${str.slice(-length + 3)}`;
|
78
76
|
} else if (length > 0) {
|
79
77
|
return str.slice(-length);
|
80
|
-
} else {
|
81
|
-
return "";
|
82
78
|
}
|
79
|
+
return "";
|
83
80
|
});
|
84
81
|
};
|
85
82
|
|
@@ -11,9 +11,7 @@ const Watchpack = require("watchpack");
|
|
11
11
|
/** @typedef {import("../../declarations/WebpackOptions").WatchOptions} WatchOptions */
|
12
12
|
/** @typedef {import("../FileSystemInfo").FileSystemInfoEntry} FileSystemInfoEntry */
|
13
13
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
14
|
-
/** @typedef {import("../util/fs").WatchFileSystem} WatchFileSystem */
|
15
14
|
/** @typedef {import("../util/fs").WatchMethod} WatchMethod */
|
16
|
-
/** @typedef {import("../util/fs").Watcher} Watcher */
|
17
15
|
|
18
16
|
class NodeWatchFileSystem {
|
19
17
|
/**
|
@@ -27,16 +25,7 @@ class NodeWatchFileSystem {
|
|
27
25
|
this.watcher = new Watchpack(this.watcherOptions);
|
28
26
|
}
|
29
27
|
|
30
|
-
/**
|
31
|
-
* @param {Iterable<string>} files watched files
|
32
|
-
* @param {Iterable<string>} directories watched directories
|
33
|
-
* @param {Iterable<string>} missing watched existence entries
|
34
|
-
* @param {number} startTime timestamp of start time
|
35
|
-
* @param {WatchOptions} options options object
|
36
|
-
* @param {function(Error | null, Map<string, FileSystemInfoEntry>, Map<string, FileSystemInfoEntry>, Set<string>, Set<string>): void} callback aggregated callback
|
37
|
-
* @param {function(string, number): void} callbackUndelayed callback when the first change was detected
|
38
|
-
* @returns {Watcher} a watcher
|
39
|
-
*/
|
28
|
+
/** @type {WatchMethod} */
|
40
29
|
watch(
|
41
30
|
files,
|
42
31
|
directories,
|
@@ -161,16 +150,12 @@ class NodeWatchFileSystem {
|
|
161
150
|
"DEP_WEBPACK_WATCHER_GET_AGGREGATED_CHANGES"
|
162
151
|
),
|
163
152
|
getFileTimeInfoEntries: util.deprecate(
|
164
|
-
() =>
|
165
|
-
return fetchTimeInfo().fileTimeInfoEntries;
|
166
|
-
},
|
153
|
+
() => fetchTimeInfo().fileTimeInfoEntries,
|
167
154
|
"Watcher.getFileTimeInfoEntries is deprecated in favor of Watcher.getInfo since that's more performant.",
|
168
155
|
"DEP_WEBPACK_WATCHER_FILE_TIME_INFO_ENTRIES"
|
169
156
|
),
|
170
157
|
getContextTimeInfoEntries: util.deprecate(
|
171
|
-
() =>
|
172
|
-
return fetchTimeInfo().contextTimeInfoEntries;
|
173
|
-
},
|
158
|
+
() => fetchTimeInfo().contextTimeInfoEntries,
|
174
159
|
"Watcher.getContextTimeInfoEntries is deprecated in favor of Watcher.getInfo since that's more performant.",
|
175
160
|
"DEP_WEBPACK_WATCHER_CONTEXT_TIME_INFO_ENTRIES"
|
176
161
|
),
|
@@ -43,7 +43,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
|
|
43
43
|
|
44
44
|
return `${RuntimeGlobals.baseURI} = require("url").pathToFileURL(${
|
45
45
|
rootOutputDir
|
46
|
-
? `__dirname + ${JSON.stringify(
|
46
|
+
? `__dirname + ${JSON.stringify(`/${rootOutputDir}`)}`
|
47
47
|
: "__filename"
|
48
48
|
});`;
|
49
49
|
}
|
@@ -227,7 +227,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
|
|
227
227
|
Template.indent([
|
228
228
|
`if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`,
|
229
229
|
Template.indent([
|
230
|
-
|
230
|
+
"currentUpdate[moduleId] = updatedModules[moduleId];",
|
231
231
|
"if(updatedModulesList) updatedModulesList.push(moduleId);"
|
232
232
|
]),
|
233
233
|
"}"
|
@@ -43,7 +43,7 @@ class RequireChunkLoadingRuntimeModule extends RuntimeModule {
|
|
43
43
|
|
44
44
|
return `${RuntimeGlobals.baseURI} = require("url").pathToFileURL(${
|
45
45
|
rootOutputDir !== "./"
|
46
|
-
? `__dirname + ${JSON.stringify(
|
46
|
+
? `__dirname + ${JSON.stringify(`/${rootOutputDir}`)}`
|
47
47
|
: "__filename"
|
48
48
|
});`;
|
49
49
|
}
|
@@ -189,7 +189,7 @@ class RequireChunkLoadingRuntimeModule extends RuntimeModule {
|
|
189
189
|
Template.indent([
|
190
190
|
`if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`,
|
191
191
|
Template.indent([
|
192
|
-
|
192
|
+
"currentUpdate[moduleId] = updatedModules[moduleId];",
|
193
193
|
"if(updatedModulesList) updatedModulesList.push(moduleId);"
|
194
194
|
]),
|
195
195
|
"}"
|