webpack 4.9.1 → 4.10.2
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 +755 -755
- package/SECURITY.md +9 -9
- package/buildin/global.js +20 -20
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/hot/dev-server.js +61 -61
- package/hot/log-apply-result.js +44 -44
- package/hot/log.js +45 -45
- package/hot/only-dev-server.js +105 -105
- package/hot/poll.js +37 -37
- package/hot/signal.js +62 -62
- package/lib/APIPlugin.js +84 -84
- package/lib/AmdMainTemplatePlugin.js +87 -75
- package/lib/AsyncDependenciesBlock.js +66 -66
- package/lib/AsyncDependencyToInitialChunkError.js +31 -21
- package/lib/AutomaticPrefetchPlugin.js +50 -50
- package/lib/BannerPlugin.js +3 -1
- package/lib/BasicEvaluatedExpression.js +211 -208
- package/lib/CachePlugin.js +102 -95
- package/lib/CaseSensitiveModulesWarning.js +71 -53
- package/lib/Chunk.js +750 -722
- package/lib/ChunkGroup.js +13 -5
- package/lib/ChunkRenderError.js +32 -32
- package/lib/CompatibilityPlugin.js +63 -63
- package/lib/Compilation.js +1947 -1905
- package/lib/Compiler.js +508 -496
- package/lib/ConcurrentCompilationError.js +19 -19
- package/lib/ConstPlugin.js +258 -242
- package/lib/ContextExclusionPlugin.js +17 -17
- package/lib/ContextModule.js +749 -710
- package/lib/ContextModuleFactory.js +256 -245
- package/lib/ContextReplacementPlugin.js +133 -126
- package/lib/DefinePlugin.js +206 -197
- package/lib/DelegatedModule.js +101 -101
- package/lib/DelegatedModuleFactoryPlugin.js +89 -89
- package/lib/DelegatedPlugin.js +39 -39
- package/lib/DependenciesBlock.js +89 -87
- package/lib/DependenciesBlockVariable.js +52 -51
- package/lib/Dependency.js +51 -51
- package/lib/DllEntryPlugin.js +51 -51
- package/lib/DllModule.js +54 -54
- package/lib/DllModuleFactory.js +29 -29
- package/lib/DllPlugin.js +44 -42
- package/lib/DllReferencePlugin.js +84 -84
- package/lib/DynamicEntryPlugin.js +73 -71
- package/lib/EntryOptionPlugin.js +33 -33
- package/lib/EnvironmentPlugin.js +65 -65
- package/lib/ErrorHelpers.js +60 -57
- package/lib/EvalDevToolModulePlugin.js +27 -27
- package/lib/EvalDevToolModuleTemplatePlugin.js +61 -61
- package/lib/EvalSourceMapDevToolPlugin.js +41 -40
- package/lib/ExportPropertyMainTemplatePlugin.js +53 -40
- package/lib/ExtendedAPIPlugin.js +84 -84
- package/lib/ExternalModule.js +159 -159
- package/lib/ExternalModuleFactoryPlugin.js +110 -110
- package/lib/ExternalsPlugin.js +23 -23
- package/lib/FlagDependencyExportsPlugin.js +146 -146
- package/lib/FlagDependencyUsagePlugin.js +110 -104
- package/lib/FlagInitialModulesAsUsedPlugin.js +36 -36
- package/lib/FunctionModulePlugin.js +19 -19
- package/lib/FunctionModuleTemplatePlugin.js +100 -98
- package/lib/GraphHelpers.js +64 -64
- package/lib/HarmonyLinkingError.js +18 -18
- package/lib/HashedModuleIdsPlugin.js +53 -53
- package/lib/HotModuleReplacement.runtime.js +7 -3
- package/lib/HotModuleReplacementPlugin.js +413 -406
- package/lib/HotUpdateChunk.js +16 -16
- package/lib/HotUpdateChunkTemplate.js +78 -78
- package/lib/IgnorePlugin.js +71 -71
- package/lib/JavascriptGenerator.js +229 -228
- package/lib/JavascriptModulesPlugin.js +179 -184
- package/lib/JsonGenerator.js +42 -42
- package/lib/JsonModulesPlugin.js +30 -30
- package/lib/JsonParser.js +27 -26
- package/lib/LibManifestPlugin.js +86 -86
- package/lib/LibraryTemplatePlugin.js +153 -119
- package/lib/LoaderOptionsPlugin.js +53 -52
- package/lib/LoaderTargetPlugin.js +24 -24
- package/lib/MainTemplate.js +34 -9
- package/lib/Module.js +381 -377
- package/lib/ModuleBuildError.js +42 -42
- package/lib/ModuleDependencyError.js +35 -25
- package/lib/ModuleDependencyWarning.js +25 -25
- package/lib/ModuleError.js +28 -28
- package/lib/ModuleFilenameHelpers.js +178 -166
- package/lib/ModuleParseError.js +44 -44
- package/lib/ModuleReason.js +40 -40
- package/lib/ModuleTemplate.js +84 -84
- package/lib/ModuleWarning.js +30 -30
- package/lib/MultiCompiler.js +283 -271
- package/lib/MultiEntryPlugin.js +58 -58
- package/lib/MultiModule.js +81 -78
- package/lib/MultiModuleFactory.js +23 -23
- package/lib/MultiStats.js +92 -92
- package/lib/MultiWatching.js +38 -38
- package/lib/NamedChunksPlugin.js +29 -29
- package/lib/NamedModulesPlugin.js +57 -57
- package/lib/NoEmitOnErrorsPlugin.js +20 -20
- package/lib/NoModeWarning.js +23 -23
- package/lib/NodeStuffPlugin.js +179 -178
- package/lib/NormalModule.js +497 -490
- package/lib/NormalModuleFactory.js +501 -483
- package/lib/NormalModuleReplacementPlugin.js +51 -51
- package/lib/OptionsDefaulter.js +84 -80
- package/lib/Parser.js +2164 -2086
- package/lib/ParserHelpers.js +103 -100
- package/lib/PrefetchPlugin.js +37 -37
- package/lib/ProgressPlugin.js +231 -231
- package/lib/ProvidePlugin.js +86 -86
- package/lib/RawModule.js +56 -54
- package/lib/RecordIdsPlugin.js +166 -162
- package/lib/RemovedPluginError.js +13 -13
- package/lib/RequestShortener.js +81 -74
- package/lib/RequireJsStuffPlugin.js +69 -69
- package/lib/ResolverFactory.js +64 -64
- package/lib/RuleSet.js +555 -534
- package/lib/RuntimeTemplate.js +320 -277
- package/lib/SetVarMainTemplatePlugin.js +69 -57
- package/lib/SingleEntryPlugin.js +44 -44
- package/lib/SizeFormatHelpers.js +24 -24
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -49
- package/lib/SourceMapDevToolPlugin.js +301 -300
- package/lib/Stats.js +1408 -1367
- package/lib/Template.js +4 -2
- package/lib/TemplatedPathPlugin.js +173 -170
- package/lib/UmdMainTemplatePlugin.js +304 -264
- package/lib/UseStrictPlugin.js +48 -48
- package/lib/WarnCaseSensitiveModulesPlugin.js +37 -36
- package/lib/WarnNoModeSetPlugin.js +17 -17
- package/lib/WatchIgnorePlugin.js +100 -100
- package/lib/Watching.js +194 -193
- package/lib/WebpackError.js +25 -19
- package/lib/WebpackOptionsApply.js +421 -405
- package/lib/WebpackOptionsDefaulter.js +347 -344
- package/lib/WebpackOptionsValidationError.js +345 -316
- package/lib/compareLocations.js +56 -56
- package/lib/dependencies/AMDDefineDependency.js +137 -137
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +336 -327
- package/lib/dependencies/AMDPlugin.js +250 -250
- package/lib/dependencies/AMDRequireArrayDependency.js +49 -49
- package/lib/dependencies/AMDRequireContextDependency.js +20 -20
- package/lib/dependencies/AMDRequireDependenciesBlock.js +43 -43
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +273 -270
- package/lib/dependencies/AMDRequireDependency.js +135 -135
- package/lib/dependencies/CommonJsPlugin.js +161 -161
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -23
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +130 -130
- package/lib/dependencies/ConstDependency.js +33 -33
- package/lib/dependencies/ContextDependency.js +68 -68
- package/lib/dependencies/ContextDependencyTemplateAsId.js +42 -42
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +38 -38
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/DelegatedExportsDependency.js +33 -33
- package/lib/dependencies/DependencyReference.js +18 -18
- package/lib/dependencies/HarmonyAcceptDependency.js +45 -45
- package/lib/dependencies/HarmonyAcceptImportDependency.js +23 -23
- package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -31
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +92 -90
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +139 -139
- package/lib/dependencies/HarmonyExportExpressionDependency.js +53 -53
- package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -30
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +620 -603
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +54 -54
- package/lib/dependencies/HarmonyImportDependency.js +104 -94
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +217 -214
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -31
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +166 -156
- package/lib/dependencies/HarmonyInitDependency.js +60 -60
- package/lib/dependencies/HarmonyModulesPlugin.js +146 -146
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +26 -26
- package/lib/dependencies/ImportContextDependency.js +23 -23
- package/lib/dependencies/ImportDependenciesBlock.js +18 -18
- package/lib/dependencies/ImportDependency.js +34 -34
- package/lib/dependencies/ImportEagerDependency.js +32 -32
- package/lib/dependencies/ImportParserPlugin.js +233 -232
- package/lib/dependencies/ImportPlugin.js +82 -82
- package/lib/dependencies/ImportWeakDependency.js +34 -34
- package/lib/dependencies/JsonExportsDependency.js +26 -26
- package/lib/dependencies/LoaderPlugin.js +98 -93
- package/lib/dependencies/LocalModuleDependency.js +28 -28
- package/lib/dependencies/LocalModulesHelpers.js +52 -45
- package/lib/dependencies/ModuleDependency.js +20 -20
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -17
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -17
- package/lib/dependencies/MultiEntryDependency.js +20 -20
- package/lib/dependencies/NullDependency.js +20 -20
- package/lib/dependencies/RequireContextDependency.js +22 -22
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -56
- package/lib/dependencies/RequireContextPlugin.js +143 -141
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -33
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -112
- package/lib/dependencies/RequireEnsureDependency.js +58 -58
- package/lib/dependencies/RequireEnsurePlugin.js +74 -74
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependency.js +39 -39
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -23
- package/lib/dependencies/RequireIncludePlugin.js +61 -61
- package/lib/dependencies/RequireResolveContextDependency.js +23 -23
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +85 -85
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SingleEntryDependency.js +18 -18
- package/lib/dependencies/SystemPlugin.js +125 -125
- package/lib/dependencies/UnsupportedDependency.js +27 -27
- package/lib/dependencies/WebAssemblyImportDependency.js +48 -44
- package/lib/dependencies/WebpackMissingModule.js +20 -20
- package/lib/dependencies/getFunctionExpression.js +52 -52
- package/lib/formatLocation.js +61 -53
- package/lib/node/NodeChunkTemplatePlugin.js +31 -31
- package/lib/node/NodeEnvironmentPlugin.js +28 -28
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +36 -36
- package/lib/node/NodeMainTemplate.runtime.js +27 -27
- package/lib/node/NodeMainTemplateAsync.runtime.js +44 -44
- package/lib/node/NodeMainTemplatePlugin.js +323 -320
- package/lib/node/NodeSourcePlugin.js +144 -140
- package/lib/node/NodeTargetPlugin.js +18 -18
- package/lib/node/NodeTemplatePlugin.js +31 -31
- package/lib/node/NodeWatchFileSystem.js +99 -82
- package/lib/node/ReadFileCompileWasmTemplatePlugin.js +52 -52
- package/lib/optimize/AggressiveMergingPlugin.js +87 -87
- package/lib/optimize/AggressiveSplittingPlugin.js +287 -281
- package/lib/optimize/ChunkModuleIdRangePlugin.js +68 -68
- package/lib/optimize/ConcatenatedModule.js +1420 -1413
- package/lib/optimize/EnsureChunkConditionsPlugin.js +70 -70
- package/lib/optimize/FlagIncludedChunksPlugin.js +99 -99
- package/lib/optimize/LimitChunkCountPlugin.js +66 -66
- package/lib/optimize/MergeDuplicateChunksPlugin.js +78 -75
- package/lib/optimize/MinChunkSizePlugin.js +77 -77
- package/lib/optimize/ModuleConcatenationPlugin.js +470 -457
- package/lib/optimize/OccurrenceOrderPlugin.js +133 -126
- package/lib/optimize/RemoveParentModulesPlugin.js +127 -117
- package/lib/optimize/RuntimeChunkPlugin.js +41 -41
- package/lib/optimize/SideEffectsFlagPlugin.js +158 -156
- package/lib/optimize/SplitChunksPlugin.js +709 -696
- package/lib/performance/AssetsOverSizeLimitWarning.js +30 -30
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +31 -31
- package/lib/performance/NoAsyncChunksWarning.js +21 -21
- package/lib/performance/SizeLimitsPlugin.js +105 -105
- package/lib/util/Semaphore.js +41 -41
- package/lib/util/SortableSet.js +5 -2
- package/lib/util/StackedSetMap.js +12 -5
- package/lib/util/TrackingSet.js +35 -35
- package/lib/util/cachedMerge.js +35 -35
- package/lib/util/createHash.js +77 -77
- package/lib/util/identifier.js +76 -76
- package/lib/validateSchema.js +67 -67
- package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +18 -18
- package/lib/wasm/WasmMainTemplatePlugin.js +310 -304
- package/lib/wasm/WebAssemblyGenerator.js +143 -19
- package/lib/wasm/WebAssemblyJavascriptGenerator.js +90 -107
- package/lib/wasm/WebAssemblyModulesPlugin.js +80 -80
- package/lib/wasm/WebAssemblyParser.js +28 -5
- package/lib/wasm/WebAssemblyUtils.js +48 -0
- package/lib/web/FetchCompileWasmTemplatePlugin.js +25 -25
- package/lib/web/JsonpChunkTemplatePlugin.js +47 -47
- package/lib/web/JsonpExportMainTemplatePlugin.js +47 -47
- package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -39
- package/lib/web/JsonpMainTemplate.runtime.js +65 -64
- package/lib/web/JsonpMainTemplatePlugin.js +576 -574
- package/lib/web/JsonpTemplatePlugin.js +23 -23
- package/lib/webpack.js +183 -182
- package/lib/webpack.web.js +31 -31
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -35
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -40
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +65 -64
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +179 -179
- package/lib/webworker/WebWorkerTemplatePlugin.js +25 -25
- package/package.json +9 -8
- package/schemas/WebpackOptions.json +1988 -1988
- package/schemas/ajv.absolutePath.js +55 -55
- package/schemas/plugins/DllPlugin.json +32 -32
- package/schemas/plugins/DllReferencePlugin.json +99 -99
- package/schemas/plugins/HashedModuleIdsPlugin.json +24 -24
- package/schemas/plugins/LoaderOptionsPlugin.json +26 -26
- package/schemas/plugins/SourceMapDevToolPlugin.json +187 -187
- package/schemas/plugins/WatchIgnorePlugin.json +16 -16
- package/schemas/plugins/debug/ProfilingPlugin.json +12 -12
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +22 -22
- package/schemas/plugins/optimize/LimitChunkCountPlugin.json +15 -15
- package/schemas/plugins/optimize/MinChunkSizePlugin.json +13 -13
@@ -1,30 +1,30 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Sean Larkin @thelarkinn
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const WebpackError = require("../WebpackError");
|
8
|
-
const SizeFormatHelpers = require("../SizeFormatHelpers");
|
9
|
-
|
10
|
-
module.exports = class AssetsOverSizeLimitWarning extends WebpackError {
|
11
|
-
constructor(assetsOverSizeLimit, assetLimit) {
|
12
|
-
super();
|
13
|
-
|
14
|
-
this.name = "AssetsOverSizeLimitWarning";
|
15
|
-
this.assets = assetsOverSizeLimit;
|
16
|
-
const assetLists = this.assets
|
17
|
-
.map(
|
18
|
-
asset =>
|
19
|
-
`\n ${asset.name} (${SizeFormatHelpers.formatSize(asset.size)})`
|
20
|
-
)
|
21
|
-
.join("");
|
22
|
-
this.message = `asset size limit: The following asset(s) exceed the recommended size limit (${SizeFormatHelpers.formatSize(
|
23
|
-
assetLimit
|
24
|
-
)}).
|
25
|
-
This can impact web performance.
|
26
|
-
Assets: ${assetLists}`;
|
27
|
-
|
28
|
-
Error.captureStackTrace(this, this.constructor);
|
29
|
-
}
|
30
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Sean Larkin @thelarkinn
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const WebpackError = require("../WebpackError");
|
8
|
+
const SizeFormatHelpers = require("../SizeFormatHelpers");
|
9
|
+
|
10
|
+
module.exports = class AssetsOverSizeLimitWarning extends WebpackError {
|
11
|
+
constructor(assetsOverSizeLimit, assetLimit) {
|
12
|
+
super();
|
13
|
+
|
14
|
+
this.name = "AssetsOverSizeLimitWarning";
|
15
|
+
this.assets = assetsOverSizeLimit;
|
16
|
+
const assetLists = this.assets
|
17
|
+
.map(
|
18
|
+
asset =>
|
19
|
+
`\n ${asset.name} (${SizeFormatHelpers.formatSize(asset.size)})`
|
20
|
+
)
|
21
|
+
.join("");
|
22
|
+
this.message = `asset size limit: The following asset(s) exceed the recommended size limit (${SizeFormatHelpers.formatSize(
|
23
|
+
assetLimit
|
24
|
+
)}).
|
25
|
+
This can impact web performance.
|
26
|
+
Assets: ${assetLists}`;
|
27
|
+
|
28
|
+
Error.captureStackTrace(this, this.constructor);
|
29
|
+
}
|
30
|
+
};
|
@@ -1,31 +1,31 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Sean Larkin @thelarkinn
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const WebpackError = require("../WebpackError");
|
8
|
-
const SizeFormatHelpers = require("../SizeFormatHelpers");
|
9
|
-
|
10
|
-
module.exports = class EntrypointsOverSizeLimitWarning extends WebpackError {
|
11
|
-
constructor(entrypoints, entrypointLimit) {
|
12
|
-
super();
|
13
|
-
|
14
|
-
this.name = "EntrypointsOverSizeLimitWarning";
|
15
|
-
this.entrypoints = entrypoints;
|
16
|
-
const entrypointList = this.entrypoints
|
17
|
-
.map(
|
18
|
-
entrypoint =>
|
19
|
-
`\n ${entrypoint.name} (${SizeFormatHelpers.formatSize(
|
20
|
-
entrypoint.size
|
21
|
-
)})\n${entrypoint.files.map(asset => ` ${asset}`).join("\n")}`
|
22
|
-
)
|
23
|
-
.join("");
|
24
|
-
this.message = `entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (${SizeFormatHelpers.formatSize(
|
25
|
-
entrypointLimit
|
26
|
-
)}). This can impact web performance.
|
27
|
-
Entrypoints:${entrypointList}\n`;
|
28
|
-
|
29
|
-
Error.captureStackTrace(this, this.constructor);
|
30
|
-
}
|
31
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Sean Larkin @thelarkinn
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const WebpackError = require("../WebpackError");
|
8
|
+
const SizeFormatHelpers = require("../SizeFormatHelpers");
|
9
|
+
|
10
|
+
module.exports = class EntrypointsOverSizeLimitWarning extends WebpackError {
|
11
|
+
constructor(entrypoints, entrypointLimit) {
|
12
|
+
super();
|
13
|
+
|
14
|
+
this.name = "EntrypointsOverSizeLimitWarning";
|
15
|
+
this.entrypoints = entrypoints;
|
16
|
+
const entrypointList = this.entrypoints
|
17
|
+
.map(
|
18
|
+
entrypoint =>
|
19
|
+
`\n ${entrypoint.name} (${SizeFormatHelpers.formatSize(
|
20
|
+
entrypoint.size
|
21
|
+
)})\n${entrypoint.files.map(asset => ` ${asset}`).join("\n")}`
|
22
|
+
)
|
23
|
+
.join("");
|
24
|
+
this.message = `entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (${SizeFormatHelpers.formatSize(
|
25
|
+
entrypointLimit
|
26
|
+
)}). This can impact web performance.
|
27
|
+
Entrypoints:${entrypointList}\n`;
|
28
|
+
|
29
|
+
Error.captureStackTrace(this, this.constructor);
|
30
|
+
}
|
31
|
+
};
|
@@ -1,21 +1,21 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Sean Larkin @thelarkinn
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const WebpackError = require("../WebpackError");
|
8
|
-
|
9
|
-
module.exports = class NoAsyncChunksWarning extends WebpackError {
|
10
|
-
constructor() {
|
11
|
-
super();
|
12
|
-
|
13
|
-
this.name = "NoAsyncChunksWarning";
|
14
|
-
this.message =
|
15
|
-
"webpack performance recommendations: \n" +
|
16
|
-
"You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.\n" +
|
17
|
-
"For more info visit https://webpack.js.org/guides/code-splitting/";
|
18
|
-
|
19
|
-
Error.captureStackTrace(this, this.constructor);
|
20
|
-
}
|
21
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Sean Larkin @thelarkinn
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const WebpackError = require("../WebpackError");
|
8
|
+
|
9
|
+
module.exports = class NoAsyncChunksWarning extends WebpackError {
|
10
|
+
constructor() {
|
11
|
+
super();
|
12
|
+
|
13
|
+
this.name = "NoAsyncChunksWarning";
|
14
|
+
this.message =
|
15
|
+
"webpack performance recommendations: \n" +
|
16
|
+
"You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.\n" +
|
17
|
+
"For more info visit https://webpack.js.org/guides/code-splitting/";
|
18
|
+
|
19
|
+
Error.captureStackTrace(this, this.constructor);
|
20
|
+
}
|
21
|
+
};
|
@@ -1,105 +1,105 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Sean Larkin @thelarkinn
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const EntrypointsOverSizeLimitWarning = require("./EntrypointsOverSizeLimitWarning");
|
7
|
-
const AssetsOverSizeLimitWarning = require("./AssetsOverSizeLimitWarning");
|
8
|
-
const NoAsyncChunksWarning = require("./NoAsyncChunksWarning");
|
9
|
-
|
10
|
-
module.exports = class SizeLimitsPlugin {
|
11
|
-
constructor(options) {
|
12
|
-
this.hints = options.hints;
|
13
|
-
this.maxAssetSize = options.maxAssetSize;
|
14
|
-
this.maxEntrypointSize = options.maxEntrypointSize;
|
15
|
-
this.assetFilter = options.assetFilter;
|
16
|
-
}
|
17
|
-
apply(compiler) {
|
18
|
-
const entrypointSizeLimit = this.maxEntrypointSize;
|
19
|
-
const assetSizeLimit = this.maxAssetSize;
|
20
|
-
const hints = this.hints;
|
21
|
-
const assetFilter = this.assetFilter || (asset => !asset.endsWith(".map"));
|
22
|
-
|
23
|
-
compiler.hooks.afterEmit.tap("SizeLimitsPlugin", compilation => {
|
24
|
-
const warnings = [];
|
25
|
-
|
26
|
-
const getEntrypointSize = entrypoint =>
|
27
|
-
entrypoint.getFiles().reduce((currentSize, file) => {
|
28
|
-
if (assetFilter(file) && compilation.assets[file]) {
|
29
|
-
return currentSize + compilation.assets[file].size();
|
30
|
-
}
|
31
|
-
|
32
|
-
return currentSize;
|
33
|
-
}, 0);
|
34
|
-
|
35
|
-
const assetsOverSizeLimit = [];
|
36
|
-
for (const assetName of Object.keys(compilation.assets)) {
|
37
|
-
if (!assetFilter(assetName)) {
|
38
|
-
continue;
|
39
|
-
}
|
40
|
-
|
41
|
-
const asset = compilation.assets[assetName];
|
42
|
-
const size = asset.size();
|
43
|
-
if (size > assetSizeLimit) {
|
44
|
-
assetsOverSizeLimit.push({
|
45
|
-
name: assetName,
|
46
|
-
size: size
|
47
|
-
});
|
48
|
-
asset.isOverSizeLimit = true;
|
49
|
-
}
|
50
|
-
}
|
51
|
-
|
52
|
-
const entrypointsOverLimit = [];
|
53
|
-
for (const pair of compilation.entrypoints) {
|
54
|
-
const name = pair[0];
|
55
|
-
const entry = pair[1];
|
56
|
-
const size = getEntrypointSize(entry);
|
57
|
-
|
58
|
-
if (size > entrypointSizeLimit) {
|
59
|
-
entrypointsOverLimit.push({
|
60
|
-
name: name,
|
61
|
-
size: size,
|
62
|
-
files: entry.getFiles().filter(assetFilter)
|
63
|
-
});
|
64
|
-
entry.isOverSizeLimit = true;
|
65
|
-
}
|
66
|
-
}
|
67
|
-
|
68
|
-
if (hints) {
|
69
|
-
// 1. Individual Chunk: Size < 250kb
|
70
|
-
// 2. Collective Initial Chunks [entrypoint] (Each Set?): Size < 250kb
|
71
|
-
// 3. No Async Chunks
|
72
|
-
// if !1, then 2, if !2 return
|
73
|
-
if (assetsOverSizeLimit.length > 0) {
|
74
|
-
warnings.push(
|
75
|
-
new AssetsOverSizeLimitWarning(assetsOverSizeLimit, assetSizeLimit)
|
76
|
-
);
|
77
|
-
}
|
78
|
-
if (entrypointsOverLimit.length > 0) {
|
79
|
-
warnings.push(
|
80
|
-
new EntrypointsOverSizeLimitWarning(
|
81
|
-
entrypointsOverLimit,
|
82
|
-
entrypointSizeLimit
|
83
|
-
)
|
84
|
-
);
|
85
|
-
}
|
86
|
-
|
87
|
-
if (warnings.length > 0) {
|
88
|
-
const hasAsyncChunks =
|
89
|
-
compilation.chunks.filter(chunk => !chunk.canBeInitial()).length >
|
90
|
-
0;
|
91
|
-
|
92
|
-
if (!hasAsyncChunks) {
|
93
|
-
warnings.push(new NoAsyncChunksWarning());
|
94
|
-
}
|
95
|
-
|
96
|
-
if (hints === "error") {
|
97
|
-
compilation.errors.push(...warnings);
|
98
|
-
} else {
|
99
|
-
compilation.warnings.push(...warnings);
|
100
|
-
}
|
101
|
-
}
|
102
|
-
}
|
103
|
-
});
|
104
|
-
}
|
105
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Sean Larkin @thelarkinn
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const EntrypointsOverSizeLimitWarning = require("./EntrypointsOverSizeLimitWarning");
|
7
|
+
const AssetsOverSizeLimitWarning = require("./AssetsOverSizeLimitWarning");
|
8
|
+
const NoAsyncChunksWarning = require("./NoAsyncChunksWarning");
|
9
|
+
|
10
|
+
module.exports = class SizeLimitsPlugin {
|
11
|
+
constructor(options) {
|
12
|
+
this.hints = options.hints;
|
13
|
+
this.maxAssetSize = options.maxAssetSize;
|
14
|
+
this.maxEntrypointSize = options.maxEntrypointSize;
|
15
|
+
this.assetFilter = options.assetFilter;
|
16
|
+
}
|
17
|
+
apply(compiler) {
|
18
|
+
const entrypointSizeLimit = this.maxEntrypointSize;
|
19
|
+
const assetSizeLimit = this.maxAssetSize;
|
20
|
+
const hints = this.hints;
|
21
|
+
const assetFilter = this.assetFilter || (asset => !asset.endsWith(".map"));
|
22
|
+
|
23
|
+
compiler.hooks.afterEmit.tap("SizeLimitsPlugin", compilation => {
|
24
|
+
const warnings = [];
|
25
|
+
|
26
|
+
const getEntrypointSize = entrypoint =>
|
27
|
+
entrypoint.getFiles().reduce((currentSize, file) => {
|
28
|
+
if (assetFilter(file) && compilation.assets[file]) {
|
29
|
+
return currentSize + compilation.assets[file].size();
|
30
|
+
}
|
31
|
+
|
32
|
+
return currentSize;
|
33
|
+
}, 0);
|
34
|
+
|
35
|
+
const assetsOverSizeLimit = [];
|
36
|
+
for (const assetName of Object.keys(compilation.assets)) {
|
37
|
+
if (!assetFilter(assetName)) {
|
38
|
+
continue;
|
39
|
+
}
|
40
|
+
|
41
|
+
const asset = compilation.assets[assetName];
|
42
|
+
const size = asset.size();
|
43
|
+
if (size > assetSizeLimit) {
|
44
|
+
assetsOverSizeLimit.push({
|
45
|
+
name: assetName,
|
46
|
+
size: size
|
47
|
+
});
|
48
|
+
asset.isOverSizeLimit = true;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
const entrypointsOverLimit = [];
|
53
|
+
for (const pair of compilation.entrypoints) {
|
54
|
+
const name = pair[0];
|
55
|
+
const entry = pair[1];
|
56
|
+
const size = getEntrypointSize(entry);
|
57
|
+
|
58
|
+
if (size > entrypointSizeLimit) {
|
59
|
+
entrypointsOverLimit.push({
|
60
|
+
name: name,
|
61
|
+
size: size,
|
62
|
+
files: entry.getFiles().filter(assetFilter)
|
63
|
+
});
|
64
|
+
entry.isOverSizeLimit = true;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
if (hints) {
|
69
|
+
// 1. Individual Chunk: Size < 250kb
|
70
|
+
// 2. Collective Initial Chunks [entrypoint] (Each Set?): Size < 250kb
|
71
|
+
// 3. No Async Chunks
|
72
|
+
// if !1, then 2, if !2 return
|
73
|
+
if (assetsOverSizeLimit.length > 0) {
|
74
|
+
warnings.push(
|
75
|
+
new AssetsOverSizeLimitWarning(assetsOverSizeLimit, assetSizeLimit)
|
76
|
+
);
|
77
|
+
}
|
78
|
+
if (entrypointsOverLimit.length > 0) {
|
79
|
+
warnings.push(
|
80
|
+
new EntrypointsOverSizeLimitWarning(
|
81
|
+
entrypointsOverLimit,
|
82
|
+
entrypointSizeLimit
|
83
|
+
)
|
84
|
+
);
|
85
|
+
}
|
86
|
+
|
87
|
+
if (warnings.length > 0) {
|
88
|
+
const hasAsyncChunks =
|
89
|
+
compilation.chunks.filter(chunk => !chunk.canBeInitial()).length >
|
90
|
+
0;
|
91
|
+
|
92
|
+
if (!hasAsyncChunks) {
|
93
|
+
warnings.push(new NoAsyncChunksWarning());
|
94
|
+
}
|
95
|
+
|
96
|
+
if (hints === "error") {
|
97
|
+
compilation.errors.push(...warnings);
|
98
|
+
} else {
|
99
|
+
compilation.warnings.push(...warnings);
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
});
|
104
|
+
}
|
105
|
+
};
|
package/lib/util/Semaphore.js
CHANGED
@@ -1,41 +1,41 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
class Semaphore {
|
8
|
-
constructor(available) {
|
9
|
-
this.available = available;
|
10
|
-
this.waiters = [];
|
11
|
-
this._continue = this._continue.bind(this);
|
12
|
-
}
|
13
|
-
|
14
|
-
acquire(callback) {
|
15
|
-
if (this.available > 0) {
|
16
|
-
this.available--;
|
17
|
-
callback();
|
18
|
-
} else {
|
19
|
-
this.waiters.push(callback);
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
release() {
|
24
|
-
this.available++;
|
25
|
-
if (this.waiters.length > 0) {
|
26
|
-
process.nextTick(this._continue);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
_continue() {
|
31
|
-
if (this.available > 0) {
|
32
|
-
if (this.waiters.length > 0) {
|
33
|
-
this.available--;
|
34
|
-
const callback = this.waiters.pop();
|
35
|
-
callback();
|
36
|
-
}
|
37
|
-
}
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
module.exports = Semaphore;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
class Semaphore {
|
8
|
+
constructor(available) {
|
9
|
+
this.available = available;
|
10
|
+
this.waiters = [];
|
11
|
+
this._continue = this._continue.bind(this);
|
12
|
+
}
|
13
|
+
|
14
|
+
acquire(callback) {
|
15
|
+
if (this.available > 0) {
|
16
|
+
this.available--;
|
17
|
+
callback();
|
18
|
+
} else {
|
19
|
+
this.waiters.push(callback);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
release() {
|
24
|
+
this.available++;
|
25
|
+
if (this.waiters.length > 0) {
|
26
|
+
process.nextTick(this._continue);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
_continue() {
|
31
|
+
if (this.available > 0) {
|
32
|
+
if (this.waiters.length > 0) {
|
33
|
+
this.available--;
|
34
|
+
const callback = this.waiters.pop();
|
35
|
+
callback();
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
module.exports = Semaphore;
|
package/lib/util/SortableSet.js
CHANGED
@@ -94,12 +94,15 @@ class SortableSet extends Set {
|
|
94
94
|
}
|
95
95
|
|
96
96
|
_invalidateCache() {
|
97
|
-
if (this._cache !== undefined)
|
97
|
+
if (this._cache !== undefined) {
|
98
|
+
this._cache.clear();
|
99
|
+
}
|
98
100
|
}
|
99
101
|
|
100
102
|
_invalidateOrderedCache() {
|
101
|
-
if (this._cacheOrderIndependent !== undefined)
|
103
|
+
if (this._cacheOrderIndependent !== undefined) {
|
102
104
|
this._cacheOrderIndependent.clear();
|
105
|
+
}
|
103
106
|
}
|
104
107
|
}
|
105
108
|
|
@@ -25,8 +25,11 @@ class StackedSetMap {
|
|
25
25
|
}
|
26
26
|
|
27
27
|
delete(item) {
|
28
|
-
if (this.stack.length > 1)
|
29
|
-
|
28
|
+
if (this.stack.length > 1) {
|
29
|
+
this.map.set(item, TOMBSTONE);
|
30
|
+
} else {
|
31
|
+
this.map.delete(item);
|
32
|
+
}
|
30
33
|
}
|
31
34
|
|
32
35
|
has(item) {
|
@@ -47,10 +50,11 @@ class StackedSetMap {
|
|
47
50
|
|
48
51
|
get(item) {
|
49
52
|
const topValue = this.map.get(item);
|
50
|
-
if (topValue !== undefined)
|
53
|
+
if (topValue !== undefined) {
|
51
54
|
return topValue === TOMBSTONE || topValue === UNDEFINED_MARKER
|
52
55
|
? undefined
|
53
56
|
: topValue;
|
57
|
+
}
|
54
58
|
if (this.stack.length > 1) {
|
55
59
|
for (var i = this.stack.length - 2; i >= 0; i--) {
|
56
60
|
const value = this.stack[i].get(item);
|
@@ -71,8 +75,11 @@ class StackedSetMap {
|
|
71
75
|
this.map = new Map();
|
72
76
|
for (const data of this.stack) {
|
73
77
|
for (const pair of data) {
|
74
|
-
if (pair[1] === TOMBSTONE)
|
75
|
-
|
78
|
+
if (pair[1] === TOMBSTONE) {
|
79
|
+
this.map.delete(pair[0]);
|
80
|
+
} else {
|
81
|
+
this.map.set(pair[0], pair[1]);
|
82
|
+
}
|
76
83
|
}
|
77
84
|
}
|
78
85
|
this.stack = [this.map];
|
package/lib/util/TrackingSet.js
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
module.exports = class TrackingSet {
|
8
|
-
constructor(set) {
|
9
|
-
this.set = set;
|
10
|
-
this.set2 = new Set();
|
11
|
-
this.stack = set.stack;
|
12
|
-
}
|
13
|
-
|
14
|
-
add(item) {
|
15
|
-
this.set2.add(item);
|
16
|
-
return this.set.add(item);
|
17
|
-
}
|
18
|
-
|
19
|
-
delete(item) {
|
20
|
-
this.set2.delete(item);
|
21
|
-
return this.set.delete(item);
|
22
|
-
}
|
23
|
-
|
24
|
-
has(item) {
|
25
|
-
return this.set.has(item);
|
26
|
-
}
|
27
|
-
|
28
|
-
createChild() {
|
29
|
-
return this.set.createChild();
|
30
|
-
}
|
31
|
-
|
32
|
-
getAddedItems() {
|
33
|
-
return this.set2;
|
34
|
-
}
|
35
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
module.exports = class TrackingSet {
|
8
|
+
constructor(set) {
|
9
|
+
this.set = set;
|
10
|
+
this.set2 = new Set();
|
11
|
+
this.stack = set.stack;
|
12
|
+
}
|
13
|
+
|
14
|
+
add(item) {
|
15
|
+
this.set2.add(item);
|
16
|
+
return this.set.add(item);
|
17
|
+
}
|
18
|
+
|
19
|
+
delete(item) {
|
20
|
+
this.set2.delete(item);
|
21
|
+
return this.set.delete(item);
|
22
|
+
}
|
23
|
+
|
24
|
+
has(item) {
|
25
|
+
return this.set.has(item);
|
26
|
+
}
|
27
|
+
|
28
|
+
createChild() {
|
29
|
+
return this.set.createChild();
|
30
|
+
}
|
31
|
+
|
32
|
+
getAddedItems() {
|
33
|
+
return this.set2;
|
34
|
+
}
|
35
|
+
};
|
package/lib/util/cachedMerge.js
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const mergeCache = new WeakMap();
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Merges two given objects and caches the result to avoid computation if same objects passed as arguements again.
|
11
|
-
* @example
|
12
|
-
* // performs Object.assign(first, second), stores the result in WeakMap and returns result
|
13
|
-
* cachedMerge({a: 1}, {a: 2})
|
14
|
-
* {a: 2}
|
15
|
-
* // when same arguments passed, gets the result from WeakMap and returns it.
|
16
|
-
* cachedMerge({a: 1}, {a: 2})
|
17
|
-
* {a: 2}
|
18
|
-
* @param {object} first first object
|
19
|
-
* @param {object} second second object
|
20
|
-
* @returns {object} merged object of first and second object
|
21
|
-
*/
|
22
|
-
const cachedMerge = (first, second) => {
|
23
|
-
let innerCache = mergeCache.get(first);
|
24
|
-
if (innerCache === undefined) {
|
25
|
-
innerCache = new WeakMap();
|
26
|
-
mergeCache.set(first, innerCache);
|
27
|
-
}
|
28
|
-
const prevMerge = innerCache.get(second);
|
29
|
-
if (prevMerge !== undefined) return prevMerge;
|
30
|
-
const newMerge = Object.assign({}, first, second);
|
31
|
-
innerCache.set(second, newMerge);
|
32
|
-
return newMerge;
|
33
|
-
};
|
34
|
-
|
35
|
-
module.exports = cachedMerge;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const mergeCache = new WeakMap();
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Merges two given objects and caches the result to avoid computation if same objects passed as arguements again.
|
11
|
+
* @example
|
12
|
+
* // performs Object.assign(first, second), stores the result in WeakMap and returns result
|
13
|
+
* cachedMerge({a: 1}, {a: 2})
|
14
|
+
* {a: 2}
|
15
|
+
* // when same arguments passed, gets the result from WeakMap and returns it.
|
16
|
+
* cachedMerge({a: 1}, {a: 2})
|
17
|
+
* {a: 2}
|
18
|
+
* @param {object} first first object
|
19
|
+
* @param {object} second second object
|
20
|
+
* @returns {object} merged object of first and second object
|
21
|
+
*/
|
22
|
+
const cachedMerge = (first, second) => {
|
23
|
+
let innerCache = mergeCache.get(first);
|
24
|
+
if (innerCache === undefined) {
|
25
|
+
innerCache = new WeakMap();
|
26
|
+
mergeCache.set(first, innerCache);
|
27
|
+
}
|
28
|
+
const prevMerge = innerCache.get(second);
|
29
|
+
if (prevMerge !== undefined) return prevMerge;
|
30
|
+
const newMerge = Object.assign({}, first, second);
|
31
|
+
innerCache.set(second, newMerge);
|
32
|
+
return newMerge;
|
33
|
+
};
|
34
|
+
|
35
|
+
module.exports = cachedMerge;
|