webpack 4.1.0 → 4.4.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 +719 -721
- package/bin/webpack.js +69 -10
- package/lib/APIPlugin.js +84 -84
- package/lib/AmdMainTemplatePlugin.js +75 -77
- package/lib/AsyncDependencyToInitialChunkError.js +21 -23
- package/lib/BannerPlugin.js +101 -101
- package/lib/Chunk.js +477 -469
- package/lib/ChunkTemplate.js +51 -53
- package/lib/Compilation.js +1858 -1851
- package/lib/Compiler.js +493 -478
- package/lib/ConcurrentCompilationError.js +19 -0
- package/lib/ContextModule.js +696 -685
- package/lib/ContextModuleFactory.js +245 -243
- package/lib/DefinePlugin.js +197 -197
- package/lib/DelegatedModule.js +101 -101
- package/lib/DependenciesBlockVariable.js +51 -52
- package/lib/Dependency.js +53 -52
- package/lib/DllModule.js +54 -54
- package/lib/DllModuleFactory.js +29 -29
- package/lib/EnvironmentPlugin.js +65 -67
- package/lib/EvalDevToolModuleTemplatePlugin.js +60 -60
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +105 -105
- package/lib/ExportPropertyMainTemplatePlugin.js +40 -40
- package/lib/ExternalModule.js +159 -159
- package/lib/FunctionModuleTemplatePlugin.js +98 -98
- package/lib/HotModuleReplacement.runtime.js +631 -631
- package/lib/HotModuleReplacementPlugin.js +407 -406
- package/lib/HotUpdateChunkTemplate.js +78 -80
- package/lib/JavascriptGenerator.js +228 -229
- package/lib/JavascriptModulesPlugin.js +184 -158
- package/lib/JsonGenerator.js +42 -42
- package/lib/MainTemplate.js +406 -402
- package/lib/Module.js +343 -340
- package/lib/ModuleBuildError.js +42 -42
- package/lib/ModuleError.js +28 -28
- package/lib/ModuleFilenameHelpers.js +166 -166
- package/lib/ModuleTemplate.js +77 -79
- package/lib/ModuleWarning.js +30 -30
- package/lib/MultiCompiler.js +271 -259
- package/lib/MultiModule.js +78 -75
- package/lib/MultiModuleFactory.js +23 -23
- package/lib/MultiWatching.js +38 -37
- package/lib/NoModeWarning.js +23 -21
- package/lib/NormalModule.js +478 -470
- package/lib/NormalModuleFactory.js +483 -481
- package/lib/OptionsDefaulter.js +80 -86
- package/lib/Parser.js +2074 -2071
- package/lib/ProgressPlugin.js +231 -231
- package/lib/RawModule.js +54 -55
- package/lib/RecordIdsPlugin.js +160 -160
- package/lib/RemovedPluginError.js +13 -13
- package/lib/ResolverFactory.js +64 -67
- package/lib/RuntimeTemplate.js +267 -297
- package/lib/SetVarMainTemplatePlugin.js +57 -57
- package/lib/SourceMapDevToolPlugin.js +302 -308
- package/lib/Stats.js +1234 -1212
- package/lib/Template.js +205 -205
- package/lib/TemplatedPathPlugin.js +170 -143
- package/lib/UmdMainTemplatePlugin.js +264 -269
- package/lib/Watching.js +193 -193
- package/lib/WebAssemblyParser.js +50 -54
- package/lib/WebpackOptionsApply.js +401 -401
- package/lib/WebpackOptionsDefaulter.js +337 -317
- package/lib/WebpackOptionsValidationError.js +316 -319
- package/lib/debug/ProfilingPlugin.js +409 -405
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +328 -311
- package/lib/dependencies/AMDRequireContextDependency.js +20 -20
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +270 -241
- package/lib/dependencies/HarmonyAcceptImportDependency.js +23 -23
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +620 -606
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +53 -53
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +214 -214
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +154 -156
- package/lib/dependencies/ImportDependenciesBlock.js +17 -17
- package/lib/dependencies/ImportDependency.js +34 -34
- package/lib/dependencies/ImportEagerDependency.js +32 -32
- package/lib/dependencies/ImportParserPlugin.js +175 -179
- package/lib/dependencies/ImportWeakDependency.js +34 -34
- package/lib/dependencies/JsonExportsDependency.js +25 -25
- package/lib/dependencies/ModuleDependency.js +20 -20
- package/lib/dependencies/NullDependency.js +20 -20
- package/lib/dependencies/RequireContextDependency.js +22 -22
- package/lib/dependencies/RequireIncludeDependency.js +40 -40
- package/lib/dependencies/WebpackMissingModule.js +20 -22
- package/lib/node/NodeChunkTemplatePlugin.js +31 -31
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +36 -36
- package/lib/node/NodeMainTemplatePlugin.js +320 -273
- package/lib/node/ReadFileCompileWasmMainTemplatePlugin.js +113 -115
- package/lib/optimize/AggressiveSplittingPlugin.js +281 -281
- package/lib/optimize/ConcatenatedModule.js +1364 -1366
- package/lib/optimize/RemoveParentModulesPlugin.js +114 -114
- package/lib/optimize/SplitChunksPlugin.js +519 -491
- package/lib/performance/SizeLimitsPlugin.js +105 -105
- package/lib/util/TrackingSet.js +35 -35
- package/lib/util/objectToMap.js +10 -10
- package/lib/wasm/WasmModuleTemplatePlugin.js +106 -106
- package/lib/web/JsonpChunkTemplatePlugin.js +47 -47
- package/lib/web/JsonpExportMainTemplatePlugin.js +47 -47
- package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -39
- package/lib/web/JsonpMainTemplatePlugin.js +425 -403
- package/lib/webpack.js +182 -179
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -35
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -40
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +177 -154
- package/package.json +9 -8
- package/schemas/WebpackOptions.json +1973 -1951
- package/schemas/ajv.absolutePath.js +55 -29
- package/schemas/plugins/BannerPlugin.json +85 -85
- package/schemas/plugins/DllPlugin.json +28 -28
- 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,115 +1,113 @@
|
|
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 ReadFileCompileWasmMainTemplatePlugin {
|
10
|
-
apply(mainTemplate) {
|
11
|
-
mainTemplate.hooks.localVars.tap(
|
12
|
-
"ReadFileCompileWasmMainTemplatePlugin",
|
13
|
-
(source, chunk) => {
|
14
|
-
return Template.asString([
|
15
|
-
source,
|
16
|
-
"",
|
17
|
-
"// object to store loaded and loading wasm modules",
|
18
|
-
"var installedWasmModules = {};"
|
19
|
-
]);
|
20
|
-
}
|
21
|
-
);
|
22
|
-
mainTemplate.hooks.requireEnsure.tap(
|
23
|
-
"ReadFileCompileWasmMainTemplatePlugin",
|
24
|
-
(source, chunk, hash) => {
|
25
|
-
const webassemblyModuleFilename =
|
26
|
-
mainTemplate.outputOptions.webassemblyModuleFilename;
|
27
|
-
const chunkModuleMaps = chunk.getChunkModuleMaps(m =>
|
28
|
-
m.type.startsWith("webassembly")
|
29
|
-
);
|
30
|
-
if (Object.keys(chunkModuleMaps.id).length === 0) return source;
|
31
|
-
const wasmModuleSrcPath = mainTemplate.getAssetPath(
|
32
|
-
JSON.stringify(webassemblyModuleFilename),
|
33
|
-
{
|
34
|
-
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
35
|
-
hashWithLength: length =>
|
36
|
-
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`,
|
37
|
-
module: {
|
38
|
-
id: '" + wasmModuleId + "',
|
39
|
-
hash: `" + ${JSON.stringify(
|
40
|
-
chunkModuleMaps.hash
|
41
|
-
)}[wasmModuleId] + "`,
|
42
|
-
hashWithLength(length) {
|
43
|
-
const shortChunkHashMap = Object.create(null);
|
44
|
-
for (const wasmModuleId of Object.keys(chunkModuleMaps.hash)) {
|
45
|
-
if (typeof chunkModuleMaps.hash[wasmModuleId] === "string")
|
46
|
-
shortChunkHashMap[wasmModuleId] = chunkModuleMaps.hash[
|
47
|
-
wasmModuleId
|
48
|
-
].substr(0, length);
|
49
|
-
}
|
50
|
-
return `" + ${JSON.stringify(
|
51
|
-
shortChunkHashMap
|
52
|
-
)}[wasmModuleId] + "`;
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
56
|
-
);
|
57
|
-
return Template.asString([
|
58
|
-
source,
|
59
|
-
"",
|
60
|
-
"// ReadFile + compile chunk loading for webassembly",
|
61
|
-
"",
|
62
|
-
`var wasmModules = ${JSON.stringify(
|
63
|
-
chunkModuleMaps.id
|
64
|
-
)}[chunkId] || [];`,
|
65
|
-
"",
|
66
|
-
"wasmModules.forEach(function(wasmModuleId) {",
|
67
|
-
Template.indent([
|
68
|
-
"var installedWasmModuleData = installedWasmModules[wasmModuleId];",
|
69
|
-
"",
|
70
|
-
'// a Promise means "currently loading" or "already loaded".',
|
71
|
-
"promises.push(installedWasmModuleData ||",
|
72
|
-
Template.indent([
|
73
|
-
"(installedWasmModules[wasmModuleId] = new Promise(function(resolve, reject) {",
|
74
|
-
Template.indent([
|
75
|
-
`require('fs').readFile(require('path').resolve(__dirname, ${
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
hash.update(
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
}
|
115
|
-
module.exports = ReadFileCompileWasmMainTemplatePlugin;
|
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 ReadFileCompileWasmMainTemplatePlugin {
|
10
|
+
apply(mainTemplate) {
|
11
|
+
mainTemplate.hooks.localVars.tap(
|
12
|
+
"ReadFileCompileWasmMainTemplatePlugin",
|
13
|
+
(source, chunk) => {
|
14
|
+
return Template.asString([
|
15
|
+
source,
|
16
|
+
"",
|
17
|
+
"// object to store loaded and loading wasm modules",
|
18
|
+
"var installedWasmModules = {};"
|
19
|
+
]);
|
20
|
+
}
|
21
|
+
);
|
22
|
+
mainTemplate.hooks.requireEnsure.tap(
|
23
|
+
"ReadFileCompileWasmMainTemplatePlugin",
|
24
|
+
(source, chunk, hash) => {
|
25
|
+
const webassemblyModuleFilename =
|
26
|
+
mainTemplate.outputOptions.webassemblyModuleFilename;
|
27
|
+
const chunkModuleMaps = chunk.getChunkModuleMaps(m =>
|
28
|
+
m.type.startsWith("webassembly")
|
29
|
+
);
|
30
|
+
if (Object.keys(chunkModuleMaps.id).length === 0) return source;
|
31
|
+
const wasmModuleSrcPath = mainTemplate.getAssetPath(
|
32
|
+
JSON.stringify(webassemblyModuleFilename),
|
33
|
+
{
|
34
|
+
hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
|
35
|
+
hashWithLength: length =>
|
36
|
+
`" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`,
|
37
|
+
module: {
|
38
|
+
id: '" + wasmModuleId + "',
|
39
|
+
hash: `" + ${JSON.stringify(
|
40
|
+
chunkModuleMaps.hash
|
41
|
+
)}[wasmModuleId] + "`,
|
42
|
+
hashWithLength(length) {
|
43
|
+
const shortChunkHashMap = Object.create(null);
|
44
|
+
for (const wasmModuleId of Object.keys(chunkModuleMaps.hash)) {
|
45
|
+
if (typeof chunkModuleMaps.hash[wasmModuleId] === "string")
|
46
|
+
shortChunkHashMap[wasmModuleId] = chunkModuleMaps.hash[
|
47
|
+
wasmModuleId
|
48
|
+
].substr(0, length);
|
49
|
+
}
|
50
|
+
return `" + ${JSON.stringify(
|
51
|
+
shortChunkHashMap
|
52
|
+
)}[wasmModuleId] + "`;
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
);
|
57
|
+
return Template.asString([
|
58
|
+
source,
|
59
|
+
"",
|
60
|
+
"// ReadFile + compile chunk loading for webassembly",
|
61
|
+
"",
|
62
|
+
`var wasmModules = ${JSON.stringify(
|
63
|
+
chunkModuleMaps.id
|
64
|
+
)}[chunkId] || [];`,
|
65
|
+
"",
|
66
|
+
"wasmModules.forEach(function(wasmModuleId) {",
|
67
|
+
Template.indent([
|
68
|
+
"var installedWasmModuleData = installedWasmModules[wasmModuleId];",
|
69
|
+
"",
|
70
|
+
'// a Promise means "currently loading" or "already loaded".',
|
71
|
+
"promises.push(installedWasmModuleData ||",
|
72
|
+
Template.indent([
|
73
|
+
"(installedWasmModules[wasmModuleId] = new Promise(function(resolve, reject) {",
|
74
|
+
Template.indent([
|
75
|
+
`require('fs').readFile(require('path').resolve(__dirname, ${wasmModuleSrcPath}), function(err, buffer) {`,
|
76
|
+
Template.indent([
|
77
|
+
"if(err) return reject(err);",
|
78
|
+
"resolve(WebAssembly.compile(buffer));"
|
79
|
+
]),
|
80
|
+
"});"
|
81
|
+
]),
|
82
|
+
`}).then(function(module) { ${
|
83
|
+
mainTemplate.requireFn
|
84
|
+
}.w[wasmModuleId] = module; }))`
|
85
|
+
]),
|
86
|
+
");"
|
87
|
+
]),
|
88
|
+
"});"
|
89
|
+
]);
|
90
|
+
}
|
91
|
+
);
|
92
|
+
mainTemplate.hooks.requireExtensions.tap(
|
93
|
+
"ReadFileCompileWasmMainTemplatePlugin",
|
94
|
+
(source, chunk) => {
|
95
|
+
return Template.asString([
|
96
|
+
source,
|
97
|
+
"",
|
98
|
+
"// object with all compiled WebAssembly.Modules",
|
99
|
+
`${mainTemplate.requireFn}.w = {};`
|
100
|
+
]);
|
101
|
+
}
|
102
|
+
);
|
103
|
+
mainTemplate.hooks.hash.tap(
|
104
|
+
"ReadFileCompileWasmMainTemplatePlugin",
|
105
|
+
hash => {
|
106
|
+
hash.update("ReadFileCompileWasmMainTemplatePlugin");
|
107
|
+
hash.update("1");
|
108
|
+
hash.update(`${mainTemplate.outputOptions.webassemblyModuleFilename}`);
|
109
|
+
}
|
110
|
+
);
|
111
|
+
}
|
112
|
+
}
|
113
|
+
module.exports = ReadFileCompileWasmMainTemplatePlugin;
|