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,64 +1,65 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
/*globals installedChunks hotAddUpdateChunk parentHotUpdateCallback importScripts XMLHttpRequest $require$ $hotChunkFilename$ $hotMainFilename$ */
|
6
|
-
module.exports = function() {
|
7
|
-
// eslint-disable-next-line no-unused-vars
|
8
|
-
function webpackHotUpdateCallback(chunkId, moreModules) {
|
9
|
-
hotAddUpdateChunk(chunkId, moreModules);
|
10
|
-
if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
|
11
|
-
} //$semicolon
|
12
|
-
|
13
|
-
// eslint-disable-next-line no-unused-vars
|
14
|
-
function hotDownloadUpdateChunk(chunkId) {
|
15
|
-
importScripts($require$.p + $hotChunkFilename$);
|
16
|
-
}
|
17
|
-
|
18
|
-
// eslint-disable-next-line no-unused-vars
|
19
|
-
function hotDownloadManifest(requestTimeout) {
|
20
|
-
requestTimeout = requestTimeout || 10000;
|
21
|
-
return new Promise(function(resolve, reject) {
|
22
|
-
if (typeof XMLHttpRequest === "undefined")
|
23
|
-
return reject(new Error("No browser support"));
|
24
|
-
|
25
|
-
|
26
|
-
var
|
27
|
-
|
28
|
-
request.
|
29
|
-
request.
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
if (request.
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
}
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
/*globals installedChunks hotAddUpdateChunk parentHotUpdateCallback importScripts XMLHttpRequest $require$ $hotChunkFilename$ $hotMainFilename$ */
|
6
|
+
module.exports = function() {
|
7
|
+
// eslint-disable-next-line no-unused-vars
|
8
|
+
function webpackHotUpdateCallback(chunkId, moreModules) {
|
9
|
+
hotAddUpdateChunk(chunkId, moreModules);
|
10
|
+
if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
|
11
|
+
} //$semicolon
|
12
|
+
|
13
|
+
// eslint-disable-next-line no-unused-vars
|
14
|
+
function hotDownloadUpdateChunk(chunkId) {
|
15
|
+
importScripts($require$.p + $hotChunkFilename$);
|
16
|
+
}
|
17
|
+
|
18
|
+
// eslint-disable-next-line no-unused-vars
|
19
|
+
function hotDownloadManifest(requestTimeout) {
|
20
|
+
requestTimeout = requestTimeout || 10000;
|
21
|
+
return new Promise(function(resolve, reject) {
|
22
|
+
if (typeof XMLHttpRequest === "undefined") {
|
23
|
+
return reject(new Error("No browser support"));
|
24
|
+
}
|
25
|
+
try {
|
26
|
+
var request = new XMLHttpRequest();
|
27
|
+
var requestPath = $require$.p + $hotMainFilename$;
|
28
|
+
request.open("GET", requestPath, true);
|
29
|
+
request.timeout = requestTimeout;
|
30
|
+
request.send(null);
|
31
|
+
} catch (err) {
|
32
|
+
return reject(err);
|
33
|
+
}
|
34
|
+
request.onreadystatechange = function() {
|
35
|
+
if (request.readyState !== 4) return;
|
36
|
+
if (request.status === 0) {
|
37
|
+
// timeout
|
38
|
+
reject(
|
39
|
+
new Error("Manifest request to " + requestPath + " timed out.")
|
40
|
+
);
|
41
|
+
} else if (request.status === 404) {
|
42
|
+
// no update available
|
43
|
+
resolve();
|
44
|
+
} else if (request.status !== 200 && request.status !== 304) {
|
45
|
+
// other failure
|
46
|
+
reject(new Error("Manifest request to " + requestPath + " failed."));
|
47
|
+
} else {
|
48
|
+
// success
|
49
|
+
try {
|
50
|
+
var update = JSON.parse(request.responseText);
|
51
|
+
} catch (e) {
|
52
|
+
reject(e);
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
resolve(update);
|
56
|
+
}
|
57
|
+
};
|
58
|
+
});
|
59
|
+
}
|
60
|
+
|
61
|
+
//eslint-disable-next-line no-unused-vars
|
62
|
+
function hotDisposeChunk(chunkId) {
|
63
|
+
delete installedChunks[chunkId];
|
64
|
+
}
|
65
|
+
};
|
@@ -1,179 +1,179 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const Template = require("../Template");
|
8
|
-
|
9
|
-
class WebWorkerMainTemplatePlugin {
|
10
|
-
apply(mainTemplate) {
|
11
|
-
const needChunkOnDemandLoadingCode = chunk => {
|
12
|
-
for (const chunkGroup of chunk.groupsIterable) {
|
13
|
-
if (chunkGroup.getNumberOfChildren() > 0) return true;
|
14
|
-
}
|
15
|
-
return false;
|
16
|
-
};
|
17
|
-
mainTemplate.hooks.localVars.tap(
|
18
|
-
"WebWorkerMainTemplatePlugin",
|
19
|
-
(source, chunk) => {
|
20
|
-
if (needChunkOnDemandLoadingCode(chunk)) {
|
21
|
-
return Template.asString([
|
22
|
-
source,
|
23
|
-
"",
|
24
|
-
"// object to store loaded chunks",
|
25
|
-
'// "1" means "already loaded"',
|
26
|
-
"var installedChunks = {",
|
27
|
-
Template.indent(
|
28
|
-
chunk.ids.map(id => `${JSON.stringify(id)}: 1`).join(",\n")
|
29
|
-
),
|
30
|
-
"};"
|
31
|
-
]);
|
32
|
-
}
|
33
|
-
return source;
|
34
|
-
}
|
35
|
-
);
|
36
|
-
mainTemplate.hooks.requireEnsure.tap(
|
37
|
-
"WebWorkerMainTemplatePlugin",
|
38
|
-
(_, chunk, hash) => {
|
39
|
-
const chunkFilename = mainTemplate.outputOptions.chunkFilename;
|
40
|
-
const chunkMaps = chunk.getChunkMaps();
|
41
|
-
return Template.asString([
|
42
|
-
"promises.push(Promise.resolve().then(function() {",
|
43
|
-
Template.indent([
|
44
|
-
'// "1" is the signal for "already loaded"',
|
45
|
-
"if(!installedChunks[chunkId]) {",
|
46
|
-
Template.indent([
|
47
|
-
"importScripts(" +
|
48
|
-
mainTemplate.getAssetPath(JSON.stringify(chunkFilename), {
|
49
|
-
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
50
|
-
hashWithLength: length =>
|
51
|
-
`" + ${mainTemplate.renderCurrentHashCode(
|
52
|
-
hash,
|
53
|
-
length
|
54
|
-
)} + "`,
|
55
|
-
chunk: {
|
56
|
-
id: '" + chunkId + "',
|
57
|
-
contentHash: {
|
58
|
-
javascript: `" + ${JSON.stringify(
|
59
|
-
chunkMaps.contentHash.javascript
|
60
|
-
)}[chunkId] + "`
|
61
|
-
},
|
62
|
-
contentHashWithLength: {
|
63
|
-
javascript: length => {
|
64
|
-
const shortContentHashMap = {};
|
65
|
-
const contentHash = chunkMaps.contentHash.javascript;
|
66
|
-
for (const chunkId of Object.keys(contentHash)) {
|
67
|
-
if (typeof contentHash[chunkId] === "string") {
|
68
|
-
shortContentHashMap[chunkId] = contentHash[
|
69
|
-
chunkId
|
70
|
-
].substr(0, length);
|
71
|
-
}
|
72
|
-
}
|
73
|
-
return `" + ${JSON.stringify(
|
74
|
-
shortContentHashMap
|
75
|
-
)}[chunkId] + "`;
|
76
|
-
}
|
77
|
-
}
|
78
|
-
},
|
79
|
-
contentHashType: "javascript"
|
80
|
-
}) +
|
81
|
-
");"
|
82
|
-
]),
|
83
|
-
"}"
|
84
|
-
]),
|
85
|
-
"}));"
|
86
|
-
]);
|
87
|
-
}
|
88
|
-
);
|
89
|
-
mainTemplate.hooks.bootstrap.tap(
|
90
|
-
"WebWorkerMainTemplatePlugin",
|
91
|
-
(source, chunk, hash) => {
|
92
|
-
if (needChunkOnDemandLoadingCode(chunk)) {
|
93
|
-
const chunkCallbackName =
|
94
|
-
mainTemplate.outputOptions.chunkCallbackName;
|
95
|
-
const globalObject = mainTemplate.outputOptions.globalObject;
|
96
|
-
return Template.asString([
|
97
|
-
source,
|
98
|
-
`${globalObject}[${JSON.stringify(
|
99
|
-
chunkCallbackName
|
100
|
-
)}] = function webpackChunkCallback(chunkIds, moreModules) {`,
|
101
|
-
Template.indent([
|
102
|
-
"for(var moduleId in moreModules) {",
|
103
|
-
Template.indent(
|
104
|
-
mainTemplate.renderAddModule(
|
105
|
-
hash,
|
106
|
-
chunk,
|
107
|
-
"moduleId",
|
108
|
-
"moreModules[moduleId]"
|
109
|
-
)
|
110
|
-
),
|
111
|
-
"}",
|
112
|
-
"while(chunkIds.length)",
|
113
|
-
Template.indent("installedChunks[chunkIds.pop()] = 1;")
|
114
|
-
]),
|
115
|
-
"};"
|
116
|
-
]);
|
117
|
-
}
|
118
|
-
return source;
|
119
|
-
}
|
120
|
-
);
|
121
|
-
mainTemplate.hooks.hotBootstrap.tap(
|
122
|
-
"WebWorkerMainTemplatePlugin",
|
123
|
-
(source, chunk, hash) => {
|
124
|
-
const hotUpdateChunkFilename =
|
125
|
-
mainTemplate.outputOptions.hotUpdateChunkFilename;
|
126
|
-
const hotUpdateMainFilename =
|
127
|
-
mainTemplate.outputOptions.hotUpdateMainFilename;
|
128
|
-
const hotUpdateFunction = mainTemplate.outputOptions.hotUpdateFunction;
|
129
|
-
const globalObject = mainTemplate.outputOptions.globalObject;
|
130
|
-
const currentHotUpdateChunkFilename = mainTemplate.getAssetPath(
|
131
|
-
JSON.stringify(hotUpdateChunkFilename),
|
132
|
-
{
|
133
|
-
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
134
|
-
hashWithLength: length =>
|
135
|
-
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`,
|
136
|
-
chunk: {
|
137
|
-
id: '" + chunkId + "'
|
138
|
-
}
|
139
|
-
}
|
140
|
-
);
|
141
|
-
const currentHotUpdateMainFilename = mainTemplate.getAssetPath(
|
142
|
-
JSON.stringify(hotUpdateMainFilename),
|
143
|
-
{
|
144
|
-
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
145
|
-
hashWithLength: length =>
|
146
|
-
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`
|
147
|
-
}
|
148
|
-
);
|
149
|
-
|
150
|
-
return (
|
151
|
-
source +
|
152
|
-
"\n" +
|
153
|
-
`var parentHotUpdateCallback = ${globalObject}[${JSON.stringify(
|
154
|
-
hotUpdateFunction
|
155
|
-
)}];\n` +
|
156
|
-
`${globalObject}[${JSON.stringify(hotUpdateFunction)}] = ` +
|
157
|
-
Template.getFunctionContent(
|
158
|
-
require("./WebWorkerMainTemplate.runtime.js")
|
159
|
-
)
|
160
|
-
.replace(/\/\/\$semicolon/g, ";")
|
161
|
-
.replace(/\$require\$/g, mainTemplate.requireFn)
|
162
|
-
.replace(/\$hotMainFilename\$/g, currentHotUpdateMainFilename)
|
163
|
-
.replace(/\$hotChunkFilename\$/g, currentHotUpdateChunkFilename)
|
164
|
-
.replace(/\$hash\$/g, JSON.stringify(hash))
|
165
|
-
);
|
166
|
-
}
|
167
|
-
);
|
168
|
-
mainTemplate.hooks.hash.tap("WebWorkerMainTemplatePlugin", hash => {
|
169
|
-
hash.update("webworker");
|
170
|
-
hash.update("3");
|
171
|
-
hash.update(`${mainTemplate.outputOptions.publicPath}`);
|
172
|
-
hash.update(`${mainTemplate.outputOptions.filename}`);
|
173
|
-
hash.update(`${mainTemplate.outputOptions.chunkFilename}`);
|
174
|
-
hash.update(`${mainTemplate.outputOptions.chunkCallbackName}`);
|
175
|
-
hash.update(`${mainTemplate.outputOptions.globalObject}`);
|
176
|
-
});
|
177
|
-
}
|
178
|
-
}
|
179
|
-
module.exports = WebWorkerMainTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const Template = require("../Template");
|
8
|
+
|
9
|
+
class WebWorkerMainTemplatePlugin {
|
10
|
+
apply(mainTemplate) {
|
11
|
+
const needChunkOnDemandLoadingCode = chunk => {
|
12
|
+
for (const chunkGroup of chunk.groupsIterable) {
|
13
|
+
if (chunkGroup.getNumberOfChildren() > 0) return true;
|
14
|
+
}
|
15
|
+
return false;
|
16
|
+
};
|
17
|
+
mainTemplate.hooks.localVars.tap(
|
18
|
+
"WebWorkerMainTemplatePlugin",
|
19
|
+
(source, chunk) => {
|
20
|
+
if (needChunkOnDemandLoadingCode(chunk)) {
|
21
|
+
return Template.asString([
|
22
|
+
source,
|
23
|
+
"",
|
24
|
+
"// object to store loaded chunks",
|
25
|
+
'// "1" means "already loaded"',
|
26
|
+
"var installedChunks = {",
|
27
|
+
Template.indent(
|
28
|
+
chunk.ids.map(id => `${JSON.stringify(id)}: 1`).join(",\n")
|
29
|
+
),
|
30
|
+
"};"
|
31
|
+
]);
|
32
|
+
}
|
33
|
+
return source;
|
34
|
+
}
|
35
|
+
);
|
36
|
+
mainTemplate.hooks.requireEnsure.tap(
|
37
|
+
"WebWorkerMainTemplatePlugin",
|
38
|
+
(_, chunk, hash) => {
|
39
|
+
const chunkFilename = mainTemplate.outputOptions.chunkFilename;
|
40
|
+
const chunkMaps = chunk.getChunkMaps();
|
41
|
+
return Template.asString([
|
42
|
+
"promises.push(Promise.resolve().then(function() {",
|
43
|
+
Template.indent([
|
44
|
+
'// "1" is the signal for "already loaded"',
|
45
|
+
"if(!installedChunks[chunkId]) {",
|
46
|
+
Template.indent([
|
47
|
+
"importScripts(" +
|
48
|
+
mainTemplate.getAssetPath(JSON.stringify(chunkFilename), {
|
49
|
+
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
50
|
+
hashWithLength: length =>
|
51
|
+
`" + ${mainTemplate.renderCurrentHashCode(
|
52
|
+
hash,
|
53
|
+
length
|
54
|
+
)} + "`,
|
55
|
+
chunk: {
|
56
|
+
id: '" + chunkId + "',
|
57
|
+
contentHash: {
|
58
|
+
javascript: `" + ${JSON.stringify(
|
59
|
+
chunkMaps.contentHash.javascript
|
60
|
+
)}[chunkId] + "`
|
61
|
+
},
|
62
|
+
contentHashWithLength: {
|
63
|
+
javascript: length => {
|
64
|
+
const shortContentHashMap = {};
|
65
|
+
const contentHash = chunkMaps.contentHash.javascript;
|
66
|
+
for (const chunkId of Object.keys(contentHash)) {
|
67
|
+
if (typeof contentHash[chunkId] === "string") {
|
68
|
+
shortContentHashMap[chunkId] = contentHash[
|
69
|
+
chunkId
|
70
|
+
].substr(0, length);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
return `" + ${JSON.stringify(
|
74
|
+
shortContentHashMap
|
75
|
+
)}[chunkId] + "`;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
},
|
79
|
+
contentHashType: "javascript"
|
80
|
+
}) +
|
81
|
+
");"
|
82
|
+
]),
|
83
|
+
"}"
|
84
|
+
]),
|
85
|
+
"}));"
|
86
|
+
]);
|
87
|
+
}
|
88
|
+
);
|
89
|
+
mainTemplate.hooks.bootstrap.tap(
|
90
|
+
"WebWorkerMainTemplatePlugin",
|
91
|
+
(source, chunk, hash) => {
|
92
|
+
if (needChunkOnDemandLoadingCode(chunk)) {
|
93
|
+
const chunkCallbackName =
|
94
|
+
mainTemplate.outputOptions.chunkCallbackName;
|
95
|
+
const globalObject = mainTemplate.outputOptions.globalObject;
|
96
|
+
return Template.asString([
|
97
|
+
source,
|
98
|
+
`${globalObject}[${JSON.stringify(
|
99
|
+
chunkCallbackName
|
100
|
+
)}] = function webpackChunkCallback(chunkIds, moreModules) {`,
|
101
|
+
Template.indent([
|
102
|
+
"for(var moduleId in moreModules) {",
|
103
|
+
Template.indent(
|
104
|
+
mainTemplate.renderAddModule(
|
105
|
+
hash,
|
106
|
+
chunk,
|
107
|
+
"moduleId",
|
108
|
+
"moreModules[moduleId]"
|
109
|
+
)
|
110
|
+
),
|
111
|
+
"}",
|
112
|
+
"while(chunkIds.length)",
|
113
|
+
Template.indent("installedChunks[chunkIds.pop()] = 1;")
|
114
|
+
]),
|
115
|
+
"};"
|
116
|
+
]);
|
117
|
+
}
|
118
|
+
return source;
|
119
|
+
}
|
120
|
+
);
|
121
|
+
mainTemplate.hooks.hotBootstrap.tap(
|
122
|
+
"WebWorkerMainTemplatePlugin",
|
123
|
+
(source, chunk, hash) => {
|
124
|
+
const hotUpdateChunkFilename =
|
125
|
+
mainTemplate.outputOptions.hotUpdateChunkFilename;
|
126
|
+
const hotUpdateMainFilename =
|
127
|
+
mainTemplate.outputOptions.hotUpdateMainFilename;
|
128
|
+
const hotUpdateFunction = mainTemplate.outputOptions.hotUpdateFunction;
|
129
|
+
const globalObject = mainTemplate.outputOptions.globalObject;
|
130
|
+
const currentHotUpdateChunkFilename = mainTemplate.getAssetPath(
|
131
|
+
JSON.stringify(hotUpdateChunkFilename),
|
132
|
+
{
|
133
|
+
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
134
|
+
hashWithLength: length =>
|
135
|
+
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`,
|
136
|
+
chunk: {
|
137
|
+
id: '" + chunkId + "'
|
138
|
+
}
|
139
|
+
}
|
140
|
+
);
|
141
|
+
const currentHotUpdateMainFilename = mainTemplate.getAssetPath(
|
142
|
+
JSON.stringify(hotUpdateMainFilename),
|
143
|
+
{
|
144
|
+
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
145
|
+
hashWithLength: length =>
|
146
|
+
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`
|
147
|
+
}
|
148
|
+
);
|
149
|
+
|
150
|
+
return (
|
151
|
+
source +
|
152
|
+
"\n" +
|
153
|
+
`var parentHotUpdateCallback = ${globalObject}[${JSON.stringify(
|
154
|
+
hotUpdateFunction
|
155
|
+
)}];\n` +
|
156
|
+
`${globalObject}[${JSON.stringify(hotUpdateFunction)}] = ` +
|
157
|
+
Template.getFunctionContent(
|
158
|
+
require("./WebWorkerMainTemplate.runtime.js")
|
159
|
+
)
|
160
|
+
.replace(/\/\/\$semicolon/g, ";")
|
161
|
+
.replace(/\$require\$/g, mainTemplate.requireFn)
|
162
|
+
.replace(/\$hotMainFilename\$/g, currentHotUpdateMainFilename)
|
163
|
+
.replace(/\$hotChunkFilename\$/g, currentHotUpdateChunkFilename)
|
164
|
+
.replace(/\$hash\$/g, JSON.stringify(hash))
|
165
|
+
);
|
166
|
+
}
|
167
|
+
);
|
168
|
+
mainTemplate.hooks.hash.tap("WebWorkerMainTemplatePlugin", hash => {
|
169
|
+
hash.update("webworker");
|
170
|
+
hash.update("3");
|
171
|
+
hash.update(`${mainTemplate.outputOptions.publicPath}`);
|
172
|
+
hash.update(`${mainTemplate.outputOptions.filename}`);
|
173
|
+
hash.update(`${mainTemplate.outputOptions.chunkFilename}`);
|
174
|
+
hash.update(`${mainTemplate.outputOptions.chunkCallbackName}`);
|
175
|
+
hash.update(`${mainTemplate.outputOptions.globalObject}`);
|
176
|
+
});
|
177
|
+
}
|
178
|
+
}
|
179
|
+
module.exports = WebWorkerMainTemplatePlugin;
|
@@ -1,25 +1,25 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const WebWorkerMainTemplatePlugin = require("./WebWorkerMainTemplatePlugin");
|
8
|
-
const WebWorkerChunkTemplatePlugin = require("./WebWorkerChunkTemplatePlugin");
|
9
|
-
const WebWorkerHotUpdateChunkTemplatePlugin = require("./WebWorkerHotUpdateChunkTemplatePlugin");
|
10
|
-
|
11
|
-
class WebWorkerTemplatePlugin {
|
12
|
-
apply(compiler) {
|
13
|
-
compiler.hooks.thisCompilation.tap(
|
14
|
-
"WebWorkerTemplatePlugin",
|
15
|
-
compilation => {
|
16
|
-
new WebWorkerMainTemplatePlugin().apply(compilation.mainTemplate);
|
17
|
-
new WebWorkerChunkTemplatePlugin().apply(compilation.chunkTemplate);
|
18
|
-
new WebWorkerHotUpdateChunkTemplatePlugin().apply(
|
19
|
-
compilation.hotUpdateChunkTemplate
|
20
|
-
);
|
21
|
-
}
|
22
|
-
);
|
23
|
-
}
|
24
|
-
}
|
25
|
-
module.exports = WebWorkerTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const WebWorkerMainTemplatePlugin = require("./WebWorkerMainTemplatePlugin");
|
8
|
+
const WebWorkerChunkTemplatePlugin = require("./WebWorkerChunkTemplatePlugin");
|
9
|
+
const WebWorkerHotUpdateChunkTemplatePlugin = require("./WebWorkerHotUpdateChunkTemplatePlugin");
|
10
|
+
|
11
|
+
class WebWorkerTemplatePlugin {
|
12
|
+
apply(compiler) {
|
13
|
+
compiler.hooks.thisCompilation.tap(
|
14
|
+
"WebWorkerTemplatePlugin",
|
15
|
+
compilation => {
|
16
|
+
new WebWorkerMainTemplatePlugin().apply(compilation.mainTemplate);
|
17
|
+
new WebWorkerChunkTemplatePlugin().apply(compilation.chunkTemplate);
|
18
|
+
new WebWorkerHotUpdateChunkTemplatePlugin().apply(
|
19
|
+
compilation.hotUpdateChunkTemplate
|
20
|
+
);
|
21
|
+
}
|
22
|
+
);
|
23
|
+
}
|
24
|
+
}
|
25
|
+
module.exports = WebWorkerTemplatePlugin;
|
package/package.json
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
{
|
2
2
|
"name": "webpack",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.10.2",
|
4
4
|
"author": "Tobias Koppers @sokra",
|
5
5
|
"description": "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
|
6
6
|
"license": "MIT",
|
7
7
|
"dependencies": {
|
8
|
-
"@webassemblyjs/ast": "1.
|
9
|
-
"@webassemblyjs/wasm-edit": "1.
|
10
|
-
"@webassemblyjs/wasm-
|
8
|
+
"@webassemblyjs/ast": "1.5.9",
|
9
|
+
"@webassemblyjs/wasm-edit": "1.5.9",
|
10
|
+
"@webassemblyjs/wasm-opt": "1.5.9",
|
11
|
+
"@webassemblyjs/wasm-parser": "1.5.9",
|
11
12
|
"acorn": "^5.0.0",
|
12
13
|
"acorn-dynamic-import": "^3.0.0",
|
13
14
|
"ajv": "^6.1.0",
|
@@ -42,7 +43,7 @@
|
|
42
43
|
"es6-promise-polyfill": "^1.1.1",
|
43
44
|
"eslint": "^4.19.1",
|
44
45
|
"eslint-config-prettier": "^2.9.0",
|
45
|
-
"eslint-plugin-jest": "21.
|
46
|
+
"eslint-plugin-jest": "^21.17.0",
|
46
47
|
"eslint-plugin-node": "^6.0.1",
|
47
48
|
"eslint-plugin-prettier": "^2.6.0",
|
48
49
|
"express": "~4.13.1",
|
@@ -52,13 +53,13 @@
|
|
52
53
|
"istanbul": "^0.4.5",
|
53
54
|
"jade": "^1.11.0",
|
54
55
|
"jade-loader": "~0.8.0",
|
55
|
-
"jest": "23.0.
|
56
|
-
"jest-silent-reporter": "0.0.
|
56
|
+
"jest": "^23.0.1",
|
57
|
+
"jest-silent-reporter": "^0.0.5",
|
57
58
|
"json-loader": "^0.5.7",
|
58
59
|
"less": "^2.5.1",
|
59
60
|
"less-loader": "^4.0.3",
|
60
61
|
"lodash": "^4.17.4",
|
61
|
-
"prettier": "^1.
|
62
|
+
"prettier": "^1.13.2",
|
62
63
|
"pug": "^2.0.3",
|
63
64
|
"pug-loader": "^2.4.0",
|
64
65
|
"raw-loader": "~0.5.0",
|