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,23 +1,23 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const JsonpMainTemplatePlugin = require("./JsonpMainTemplatePlugin");
|
8
|
-
const JsonpChunkTemplatePlugin = require("./JsonpChunkTemplatePlugin");
|
9
|
-
const JsonpHotUpdateChunkTemplatePlugin = require("./JsonpHotUpdateChunkTemplatePlugin");
|
10
|
-
|
11
|
-
class JsonpTemplatePlugin {
|
12
|
-
apply(compiler) {
|
13
|
-
compiler.hooks.thisCompilation.tap("JsonpTemplatePlugin", compilation => {
|
14
|
-
new JsonpMainTemplatePlugin().apply(compilation.mainTemplate);
|
15
|
-
new JsonpChunkTemplatePlugin().apply(compilation.chunkTemplate);
|
16
|
-
new JsonpHotUpdateChunkTemplatePlugin().apply(
|
17
|
-
compilation.hotUpdateChunkTemplate
|
18
|
-
);
|
19
|
-
});
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
module.exports = JsonpTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const JsonpMainTemplatePlugin = require("./JsonpMainTemplatePlugin");
|
8
|
+
const JsonpChunkTemplatePlugin = require("./JsonpChunkTemplatePlugin");
|
9
|
+
const JsonpHotUpdateChunkTemplatePlugin = require("./JsonpHotUpdateChunkTemplatePlugin");
|
10
|
+
|
11
|
+
class JsonpTemplatePlugin {
|
12
|
+
apply(compiler) {
|
13
|
+
compiler.hooks.thisCompilation.tap("JsonpTemplatePlugin", compilation => {
|
14
|
+
new JsonpMainTemplatePlugin().apply(compilation.mainTemplate);
|
15
|
+
new JsonpChunkTemplatePlugin().apply(compilation.chunkTemplate);
|
16
|
+
new JsonpHotUpdateChunkTemplatePlugin().apply(
|
17
|
+
compilation.hotUpdateChunkTemplate
|
18
|
+
);
|
19
|
+
});
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
module.exports = JsonpTemplatePlugin;
|
package/lib/webpack.js
CHANGED
@@ -1,182 +1,183 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const Compiler = require("./Compiler");
|
8
|
-
const MultiCompiler = require("./MultiCompiler");
|
9
|
-
const NodeEnvironmentPlugin = require("./node/NodeEnvironmentPlugin");
|
10
|
-
const WebpackOptionsApply = require("./WebpackOptionsApply");
|
11
|
-
const WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter");
|
12
|
-
const validateSchema = require("./validateSchema");
|
13
|
-
const WebpackOptionsValidationError = require("./WebpackOptionsValidationError");
|
14
|
-
const webpackOptionsSchema = require("../schemas/WebpackOptions.json");
|
15
|
-
const RemovedPluginError = require("./RemovedPluginError");
|
16
|
-
const version = require("../package.json").version;
|
17
|
-
|
18
|
-
const webpack = (options, callback) => {
|
19
|
-
const webpackOptionsValidationErrors = validateSchema(
|
20
|
-
webpackOptionsSchema,
|
21
|
-
options
|
22
|
-
);
|
23
|
-
if (webpackOptionsValidationErrors.length) {
|
24
|
-
throw new WebpackOptionsValidationError(webpackOptionsValidationErrors);
|
25
|
-
}
|
26
|
-
let compiler;
|
27
|
-
if (Array.isArray(options)) {
|
28
|
-
compiler = new MultiCompiler(options.map(options => webpack(options)));
|
29
|
-
} else if (typeof options === "object") {
|
30
|
-
options = new WebpackOptionsDefaulter().process(options);
|
31
|
-
|
32
|
-
compiler = new Compiler(options.context);
|
33
|
-
compiler.options = options;
|
34
|
-
new NodeEnvironmentPlugin().apply(compiler);
|
35
|
-
if (options.plugins && Array.isArray(options.plugins)) {
|
36
|
-
for (const plugin of options.plugins) {
|
37
|
-
plugin.apply(compiler);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
compiler.hooks.environment.call();
|
41
|
-
compiler.hooks.afterEnvironment.call();
|
42
|
-
compiler.options = new WebpackOptionsApply().process(options, compiler);
|
43
|
-
} else {
|
44
|
-
throw new Error("Invalid argument: options");
|
45
|
-
}
|
46
|
-
if (callback) {
|
47
|
-
if (typeof callback !== "function")
|
48
|
-
throw new Error("Invalid argument: callback");
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
exports.
|
65
|
-
|
66
|
-
|
67
|
-
webpack.
|
68
|
-
webpack.
|
69
|
-
webpack.
|
70
|
-
webpack.
|
71
|
-
webpack.
|
72
|
-
webpack.
|
73
|
-
webpack.
|
74
|
-
|
75
|
-
|
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
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
};
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
"
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
"
|
182
|
-
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const Compiler = require("./Compiler");
|
8
|
+
const MultiCompiler = require("./MultiCompiler");
|
9
|
+
const NodeEnvironmentPlugin = require("./node/NodeEnvironmentPlugin");
|
10
|
+
const WebpackOptionsApply = require("./WebpackOptionsApply");
|
11
|
+
const WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter");
|
12
|
+
const validateSchema = require("./validateSchema");
|
13
|
+
const WebpackOptionsValidationError = require("./WebpackOptionsValidationError");
|
14
|
+
const webpackOptionsSchema = require("../schemas/WebpackOptions.json");
|
15
|
+
const RemovedPluginError = require("./RemovedPluginError");
|
16
|
+
const version = require("../package.json").version;
|
17
|
+
|
18
|
+
const webpack = (options, callback) => {
|
19
|
+
const webpackOptionsValidationErrors = validateSchema(
|
20
|
+
webpackOptionsSchema,
|
21
|
+
options
|
22
|
+
);
|
23
|
+
if (webpackOptionsValidationErrors.length) {
|
24
|
+
throw new WebpackOptionsValidationError(webpackOptionsValidationErrors);
|
25
|
+
}
|
26
|
+
let compiler;
|
27
|
+
if (Array.isArray(options)) {
|
28
|
+
compiler = new MultiCompiler(options.map(options => webpack(options)));
|
29
|
+
} else if (typeof options === "object") {
|
30
|
+
options = new WebpackOptionsDefaulter().process(options);
|
31
|
+
|
32
|
+
compiler = new Compiler(options.context);
|
33
|
+
compiler.options = options;
|
34
|
+
new NodeEnvironmentPlugin().apply(compiler);
|
35
|
+
if (options.plugins && Array.isArray(options.plugins)) {
|
36
|
+
for (const plugin of options.plugins) {
|
37
|
+
plugin.apply(compiler);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
compiler.hooks.environment.call();
|
41
|
+
compiler.hooks.afterEnvironment.call();
|
42
|
+
compiler.options = new WebpackOptionsApply().process(options, compiler);
|
43
|
+
} else {
|
44
|
+
throw new Error("Invalid argument: options");
|
45
|
+
}
|
46
|
+
if (callback) {
|
47
|
+
if (typeof callback !== "function") {
|
48
|
+
throw new Error("Invalid argument: callback");
|
49
|
+
}
|
50
|
+
if (
|
51
|
+
options.watch === true ||
|
52
|
+
(Array.isArray(options) && options.some(o => o.watch))
|
53
|
+
) {
|
54
|
+
const watchOptions = Array.isArray(options)
|
55
|
+
? options.map(o => o.watchOptions || {})
|
56
|
+
: options.watchOptions || {};
|
57
|
+
return compiler.watch(watchOptions, callback);
|
58
|
+
}
|
59
|
+
compiler.run(callback);
|
60
|
+
}
|
61
|
+
return compiler;
|
62
|
+
};
|
63
|
+
|
64
|
+
exports = module.exports = webpack;
|
65
|
+
exports.version = version;
|
66
|
+
|
67
|
+
webpack.WebpackOptionsDefaulter = WebpackOptionsDefaulter;
|
68
|
+
webpack.WebpackOptionsApply = WebpackOptionsApply;
|
69
|
+
webpack.Compiler = Compiler;
|
70
|
+
webpack.MultiCompiler = MultiCompiler;
|
71
|
+
webpack.NodeEnvironmentPlugin = NodeEnvironmentPlugin;
|
72
|
+
webpack.validate = validateSchema.bind(this, webpackOptionsSchema);
|
73
|
+
webpack.validateSchema = validateSchema;
|
74
|
+
webpack.WebpackOptionsValidationError = WebpackOptionsValidationError;
|
75
|
+
|
76
|
+
const exportPlugins = (obj, mappings) => {
|
77
|
+
for (const name of Object.keys(mappings)) {
|
78
|
+
Object.defineProperty(obj, name, {
|
79
|
+
configurable: false,
|
80
|
+
enumerable: true,
|
81
|
+
get: mappings[name]
|
82
|
+
});
|
83
|
+
}
|
84
|
+
};
|
85
|
+
|
86
|
+
exportPlugins(exports, {
|
87
|
+
AutomaticPrefetchPlugin: () => require("./AutomaticPrefetchPlugin"),
|
88
|
+
BannerPlugin: () => require("./BannerPlugin"),
|
89
|
+
CachePlugin: () => require("./CachePlugin"),
|
90
|
+
ContextExclusionPlugin: () => require("./ContextExclusionPlugin"),
|
91
|
+
ContextReplacementPlugin: () => require("./ContextReplacementPlugin"),
|
92
|
+
DefinePlugin: () => require("./DefinePlugin"),
|
93
|
+
Dependency: () => require("./Dependency"),
|
94
|
+
DllPlugin: () => require("./DllPlugin"),
|
95
|
+
DllReferencePlugin: () => require("./DllReferencePlugin"),
|
96
|
+
EnvironmentPlugin: () => require("./EnvironmentPlugin"),
|
97
|
+
EvalDevToolModulePlugin: () => require("./EvalDevToolModulePlugin"),
|
98
|
+
EvalSourceMapDevToolPlugin: () => require("./EvalSourceMapDevToolPlugin"),
|
99
|
+
ExtendedAPIPlugin: () => require("./ExtendedAPIPlugin"),
|
100
|
+
ExternalsPlugin: () => require("./ExternalsPlugin"),
|
101
|
+
HashedModuleIdsPlugin: () => require("./HashedModuleIdsPlugin"),
|
102
|
+
HotModuleReplacementPlugin: () => require("./HotModuleReplacementPlugin"),
|
103
|
+
IgnorePlugin: () => require("./IgnorePlugin"),
|
104
|
+
LibraryTemplatePlugin: () => require("./LibraryTemplatePlugin"),
|
105
|
+
LoaderOptionsPlugin: () => require("./LoaderOptionsPlugin"),
|
106
|
+
LoaderTargetPlugin: () => require("./LoaderTargetPlugin"),
|
107
|
+
MemoryOutputFileSystem: () => require("./MemoryOutputFileSystem"),
|
108
|
+
Module: () => require("./Module"),
|
109
|
+
ModuleFilenameHelpers: () => require("./ModuleFilenameHelpers"),
|
110
|
+
NamedChunksPlugin: () => require("./NamedChunksPlugin"),
|
111
|
+
NamedModulesPlugin: () => require("./NamedModulesPlugin"),
|
112
|
+
NoEmitOnErrorsPlugin: () => require("./NoEmitOnErrorsPlugin"),
|
113
|
+
NormalModuleReplacementPlugin: () =>
|
114
|
+
require("./NormalModuleReplacementPlugin"),
|
115
|
+
PrefetchPlugin: () => require("./PrefetchPlugin"),
|
116
|
+
ProgressPlugin: () => require("./ProgressPlugin"),
|
117
|
+
ProvidePlugin: () => require("./ProvidePlugin"),
|
118
|
+
SetVarMainTemplatePlugin: () => require("./SetVarMainTemplatePlugin"),
|
119
|
+
SingleEntryPlugin: () => require("./SingleEntryPlugin"),
|
120
|
+
SourceMapDevToolPlugin: () => require("./SourceMapDevToolPlugin"),
|
121
|
+
Stats: () => require("./Stats"),
|
122
|
+
Template: () => require("./Template"),
|
123
|
+
UmdMainTemplatePlugin: () => require("./UmdMainTemplatePlugin"),
|
124
|
+
WatchIgnorePlugin: () => require("./WatchIgnorePlugin")
|
125
|
+
});
|
126
|
+
exportPlugins((exports.optimize = {}), {
|
127
|
+
AggressiveMergingPlugin: () => require("./optimize/AggressiveMergingPlugin"),
|
128
|
+
AggressiveSplittingPlugin: () =>
|
129
|
+
require("./optimize/AggressiveSplittingPlugin"),
|
130
|
+
ChunkModuleIdRangePlugin: () =>
|
131
|
+
require("./optimize/ChunkModuleIdRangePlugin"),
|
132
|
+
LimitChunkCountPlugin: () => require("./optimize/LimitChunkCountPlugin"),
|
133
|
+
MinChunkSizePlugin: () => require("./optimize/MinChunkSizePlugin"),
|
134
|
+
ModuleConcatenationPlugin: () =>
|
135
|
+
require("./optimize/ModuleConcatenationPlugin"),
|
136
|
+
OccurrenceOrderPlugin: () => require("./optimize/OccurrenceOrderPlugin"),
|
137
|
+
RuntimeChunkPlugin: () => require("./optimize/RuntimeChunkPlugin"),
|
138
|
+
SideEffectsFlagPlugin: () => require("./optimize/SideEffectsFlagPlugin"),
|
139
|
+
SplitChunksPlugin: () => require("./optimize/SplitChunksPlugin")
|
140
|
+
});
|
141
|
+
exportPlugins((exports.web = {}), {
|
142
|
+
FetchCompileWasmTemplatePlugin: () =>
|
143
|
+
require("./web/FetchCompileWasmTemplatePlugin"),
|
144
|
+
JsonpTemplatePlugin: () => require("./web/JsonpTemplatePlugin")
|
145
|
+
});
|
146
|
+
exportPlugins((exports.webworker = {}), {
|
147
|
+
WebWorkerTemplatePlugin: () => require("./webworker/WebWorkerTemplatePlugin")
|
148
|
+
});
|
149
|
+
exportPlugins((exports.node = {}), {
|
150
|
+
NodeTemplatePlugin: () => require("./node/NodeTemplatePlugin"),
|
151
|
+
ReadFileCompileWasmTemplatePlugin: () =>
|
152
|
+
require("./node/ReadFileCompileWasmTemplatePlugin")
|
153
|
+
});
|
154
|
+
exportPlugins((exports.debug = {}), {
|
155
|
+
ProfilingPlugin: () => require("./debug/ProfilingPlugin")
|
156
|
+
});
|
157
|
+
exportPlugins((exports.util = {}), {
|
158
|
+
createHash: () => require("./util/createHash")
|
159
|
+
});
|
160
|
+
|
161
|
+
const defineMissingPluginError = (namespace, pluginName, errorMessage) => {
|
162
|
+
Object.defineProperty(namespace, pluginName, {
|
163
|
+
configurable: false,
|
164
|
+
enumerable: true,
|
165
|
+
get() {
|
166
|
+
throw new RemovedPluginError(errorMessage);
|
167
|
+
}
|
168
|
+
});
|
169
|
+
};
|
170
|
+
|
171
|
+
// TODO remove in webpack 5
|
172
|
+
defineMissingPluginError(
|
173
|
+
exports.optimize,
|
174
|
+
"UglifyJsPlugin",
|
175
|
+
"webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead."
|
176
|
+
);
|
177
|
+
|
178
|
+
// TODO remove in webpack 5
|
179
|
+
defineMissingPluginError(
|
180
|
+
exports.optimize,
|
181
|
+
"CommonsChunkPlugin",
|
182
|
+
"webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead."
|
183
|
+
);
|
package/lib/webpack.web.js
CHANGED
@@ -1,31 +1,31 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const Compiler = require("./Compiler");
|
8
|
-
const WebEnvironmentPlugin = require("./web/WebEnvironmentPlugin");
|
9
|
-
const WebpackOptionsApply = require("./WebpackOptionsApply");
|
10
|
-
const WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter");
|
11
|
-
|
12
|
-
function webpack(options, callback) {
|
13
|
-
new WebpackOptionsDefaulter().process(options);
|
14
|
-
|
15
|
-
const compiler = new Compiler();
|
16
|
-
compiler.options = new WebpackOptionsApply().process(options, compiler);
|
17
|
-
new WebEnvironmentPlugin(
|
18
|
-
options.inputFileSystem,
|
19
|
-
options.outputFileSystem
|
20
|
-
).apply(compiler);
|
21
|
-
if (callback) {
|
22
|
-
compiler.run(callback);
|
23
|
-
}
|
24
|
-
return compiler;
|
25
|
-
}
|
26
|
-
module.exports = webpack;
|
27
|
-
|
28
|
-
webpack.WebpackOptionsDefaulter = WebpackOptionsDefaulter;
|
29
|
-
webpack.WebpackOptionsApply = WebpackOptionsApply;
|
30
|
-
webpack.Compiler = Compiler;
|
31
|
-
webpack.WebEnvironmentPlugin = WebEnvironmentPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const Compiler = require("./Compiler");
|
8
|
+
const WebEnvironmentPlugin = require("./web/WebEnvironmentPlugin");
|
9
|
+
const WebpackOptionsApply = require("./WebpackOptionsApply");
|
10
|
+
const WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter");
|
11
|
+
|
12
|
+
function webpack(options, callback) {
|
13
|
+
new WebpackOptionsDefaulter().process(options);
|
14
|
+
|
15
|
+
const compiler = new Compiler();
|
16
|
+
compiler.options = new WebpackOptionsApply().process(options, compiler);
|
17
|
+
new WebEnvironmentPlugin(
|
18
|
+
options.inputFileSystem,
|
19
|
+
options.outputFileSystem
|
20
|
+
).apply(compiler);
|
21
|
+
if (callback) {
|
22
|
+
compiler.run(callback);
|
23
|
+
}
|
24
|
+
return compiler;
|
25
|
+
}
|
26
|
+
module.exports = webpack;
|
27
|
+
|
28
|
+
webpack.WebpackOptionsDefaulter = WebpackOptionsDefaulter;
|
29
|
+
webpack.WebpackOptionsApply = WebpackOptionsApply;
|
30
|
+
webpack.Compiler = Compiler;
|
31
|
+
webpack.WebEnvironmentPlugin = WebEnvironmentPlugin;
|
@@ -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 { ConcatSource } = require("webpack-sources");
|
8
|
-
|
9
|
-
class WebWorkerChunkTemplatePlugin {
|
10
|
-
apply(chunkTemplate) {
|
11
|
-
chunkTemplate.hooks.render.tap(
|
12
|
-
"WebWorkerChunkTemplatePlugin",
|
13
|
-
(modules, chunk) => {
|
14
|
-
const chunkCallbackName = chunkTemplate.outputOptions.chunkCallbackName;
|
15
|
-
const globalObject = chunkTemplate.outputOptions.globalObject;
|
16
|
-
const source = new ConcatSource();
|
17
|
-
source.add(
|
18
|
-
`${globalObject}[${JSON.stringify(
|
19
|
-
chunkCallbackName
|
20
|
-
)}](${JSON.stringify(chunk.ids)},`
|
21
|
-
);
|
22
|
-
source.add(modules);
|
23
|
-
source.add(")");
|
24
|
-
return source;
|
25
|
-
}
|
26
|
-
);
|
27
|
-
chunkTemplate.hooks.hash.tap("WebWorkerChunkTemplatePlugin", hash => {
|
28
|
-
hash.update("webworker");
|
29
|
-
hash.update("3");
|
30
|
-
hash.update(`${chunkTemplate.outputOptions.chunkCallbackName}`);
|
31
|
-
hash.update(`${chunkTemplate.outputOptions.globalObject}`);
|
32
|
-
});
|
33
|
-
}
|
34
|
-
}
|
35
|
-
module.exports = WebWorkerChunkTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const { ConcatSource } = require("webpack-sources");
|
8
|
+
|
9
|
+
class WebWorkerChunkTemplatePlugin {
|
10
|
+
apply(chunkTemplate) {
|
11
|
+
chunkTemplate.hooks.render.tap(
|
12
|
+
"WebWorkerChunkTemplatePlugin",
|
13
|
+
(modules, chunk) => {
|
14
|
+
const chunkCallbackName = chunkTemplate.outputOptions.chunkCallbackName;
|
15
|
+
const globalObject = chunkTemplate.outputOptions.globalObject;
|
16
|
+
const source = new ConcatSource();
|
17
|
+
source.add(
|
18
|
+
`${globalObject}[${JSON.stringify(
|
19
|
+
chunkCallbackName
|
20
|
+
)}](${JSON.stringify(chunk.ids)},`
|
21
|
+
);
|
22
|
+
source.add(modules);
|
23
|
+
source.add(")");
|
24
|
+
return source;
|
25
|
+
}
|
26
|
+
);
|
27
|
+
chunkTemplate.hooks.hash.tap("WebWorkerChunkTemplatePlugin", hash => {
|
28
|
+
hash.update("webworker");
|
29
|
+
hash.update("3");
|
30
|
+
hash.update(`${chunkTemplate.outputOptions.chunkCallbackName}`);
|
31
|
+
hash.update(`${chunkTemplate.outputOptions.globalObject}`);
|
32
|
+
});
|
33
|
+
}
|
34
|
+
}
|
35
|
+
module.exports = WebWorkerChunkTemplatePlugin;
|
@@ -1,40 +1,40 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const { ConcatSource } = require("webpack-sources");
|
7
|
-
|
8
|
-
class WebWorkerHotUpdateChunkTemplatePlugin {
|
9
|
-
apply(hotUpdateChunkTemplate) {
|
10
|
-
hotUpdateChunkTemplate.hooks.render.tap(
|
11
|
-
"WebWorkerHotUpdateChunkTemplatePlugin",
|
12
|
-
(modulesSource, modules, removedModules, hash, id) => {
|
13
|
-
const hotUpdateFunction =
|
14
|
-
hotUpdateChunkTemplate.outputOptions.hotUpdateFunction;
|
15
|
-
const globalObject = hotUpdateChunkTemplate.outputOptions.globalObject;
|
16
|
-
const source = new ConcatSource();
|
17
|
-
source.add(
|
18
|
-
`${globalObject}[${JSON.stringify(
|
19
|
-
hotUpdateFunction
|
20
|
-
)}](${JSON.stringify(id)},`
|
21
|
-
);
|
22
|
-
source.add(modulesSource);
|
23
|
-
source.add(")");
|
24
|
-
return source;
|
25
|
-
}
|
26
|
-
);
|
27
|
-
hotUpdateChunkTemplate.hooks.hash.tap(
|
28
|
-
"WebWorkerHotUpdateChunkTemplatePlugin",
|
29
|
-
hash => {
|
30
|
-
hash.update("WebWorkerHotUpdateChunkTemplatePlugin");
|
31
|
-
hash.update("3");
|
32
|
-
hash.update(
|
33
|
-
hotUpdateChunkTemplate.outputOptions.hotUpdateFunction + ""
|
34
|
-
);
|
35
|
-
hash.update(hotUpdateChunkTemplate.outputOptions.globalObject + "");
|
36
|
-
}
|
37
|
-
);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
module.exports = WebWorkerHotUpdateChunkTemplatePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const { ConcatSource } = require("webpack-sources");
|
7
|
+
|
8
|
+
class WebWorkerHotUpdateChunkTemplatePlugin {
|
9
|
+
apply(hotUpdateChunkTemplate) {
|
10
|
+
hotUpdateChunkTemplate.hooks.render.tap(
|
11
|
+
"WebWorkerHotUpdateChunkTemplatePlugin",
|
12
|
+
(modulesSource, modules, removedModules, hash, id) => {
|
13
|
+
const hotUpdateFunction =
|
14
|
+
hotUpdateChunkTemplate.outputOptions.hotUpdateFunction;
|
15
|
+
const globalObject = hotUpdateChunkTemplate.outputOptions.globalObject;
|
16
|
+
const source = new ConcatSource();
|
17
|
+
source.add(
|
18
|
+
`${globalObject}[${JSON.stringify(
|
19
|
+
hotUpdateFunction
|
20
|
+
)}](${JSON.stringify(id)},`
|
21
|
+
);
|
22
|
+
source.add(modulesSource);
|
23
|
+
source.add(")");
|
24
|
+
return source;
|
25
|
+
}
|
26
|
+
);
|
27
|
+
hotUpdateChunkTemplate.hooks.hash.tap(
|
28
|
+
"WebWorkerHotUpdateChunkTemplatePlugin",
|
29
|
+
hash => {
|
30
|
+
hash.update("WebWorkerHotUpdateChunkTemplatePlugin");
|
31
|
+
hash.update("3");
|
32
|
+
hash.update(
|
33
|
+
hotUpdateChunkTemplate.outputOptions.hotUpdateFunction + ""
|
34
|
+
);
|
35
|
+
hash.update(hotUpdateChunkTemplate.outputOptions.globalObject + "");
|
36
|
+
}
|
37
|
+
);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
module.exports = WebWorkerHotUpdateChunkTemplatePlugin;
|