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,405 +1,421 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const OptionsApply = require("./OptionsApply");
|
8
|
-
|
9
|
-
const JavascriptModulesPlugin = require("./JavascriptModulesPlugin");
|
10
|
-
const JsonModulesPlugin = require("./JsonModulesPlugin");
|
11
|
-
const WebAssemblyModulesPlugin = require("./wasm/WebAssemblyModulesPlugin");
|
12
|
-
|
13
|
-
const LoaderTargetPlugin = require("./LoaderTargetPlugin");
|
14
|
-
const FunctionModulePlugin = require("./FunctionModulePlugin");
|
15
|
-
const EvalDevToolModulePlugin = require("./EvalDevToolModulePlugin");
|
16
|
-
const SourceMapDevToolPlugin = require("./SourceMapDevToolPlugin");
|
17
|
-
const EvalSourceMapDevToolPlugin = require("./EvalSourceMapDevToolPlugin");
|
18
|
-
|
19
|
-
const EntryOptionPlugin = require("./EntryOptionPlugin");
|
20
|
-
const RecordIdsPlugin = require("./RecordIdsPlugin");
|
21
|
-
|
22
|
-
const APIPlugin = require("./APIPlugin");
|
23
|
-
const ConstPlugin = require("./ConstPlugin");
|
24
|
-
const RequireJsStuffPlugin = require("./RequireJsStuffPlugin");
|
25
|
-
const NodeStuffPlugin = require("./NodeStuffPlugin");
|
26
|
-
const CompatibilityPlugin = require("./CompatibilityPlugin");
|
27
|
-
|
28
|
-
const TemplatedPathPlugin = require("./TemplatedPathPlugin");
|
29
|
-
const WarnCaseSensitiveModulesPlugin = require("./WarnCaseSensitiveModulesPlugin");
|
30
|
-
const UseStrictPlugin = require("./UseStrictPlugin");
|
31
|
-
|
32
|
-
const LoaderPlugin = require("./dependencies/LoaderPlugin");
|
33
|
-
const CommonJsPlugin = require("./dependencies/CommonJsPlugin");
|
34
|
-
const HarmonyModulesPlugin = require("./dependencies/HarmonyModulesPlugin");
|
35
|
-
const SystemPlugin = require("./dependencies/SystemPlugin");
|
36
|
-
const ImportPlugin = require("./dependencies/ImportPlugin");
|
37
|
-
const AMDPlugin = require("./dependencies/AMDPlugin");
|
38
|
-
const RequireContextPlugin = require("./dependencies/RequireContextPlugin");
|
39
|
-
const RequireEnsurePlugin = require("./dependencies/RequireEnsurePlugin");
|
40
|
-
const RequireIncludePlugin = require("./dependencies/RequireIncludePlugin");
|
41
|
-
|
42
|
-
const WarnNoModeSetPlugin = require("./WarnNoModeSetPlugin");
|
43
|
-
|
44
|
-
const EnsureChunkConditionsPlugin = require("./optimize/EnsureChunkConditionsPlugin");
|
45
|
-
const RemoveParentModulesPlugin = require("./optimize/RemoveParentModulesPlugin");
|
46
|
-
const RemoveEmptyChunksPlugin = require("./optimize/RemoveEmptyChunksPlugin");
|
47
|
-
const MergeDuplicateChunksPlugin = require("./optimize/MergeDuplicateChunksPlugin");
|
48
|
-
const FlagIncludedChunksPlugin = require("./optimize/FlagIncludedChunksPlugin");
|
49
|
-
const OccurrenceOrderPlugin = require("./optimize/OccurrenceOrderPlugin");
|
50
|
-
const SideEffectsFlagPlugin = require("./optimize/SideEffectsFlagPlugin");
|
51
|
-
const FlagDependencyUsagePlugin = require("./FlagDependencyUsagePlugin");
|
52
|
-
const FlagDependencyExportsPlugin = require("./FlagDependencyExportsPlugin");
|
53
|
-
const ModuleConcatenationPlugin = require("./optimize/ModuleConcatenationPlugin");
|
54
|
-
const SplitChunksPlugin = require("./optimize/SplitChunksPlugin");
|
55
|
-
const RuntimeChunkPlugin = require("./optimize/RuntimeChunkPlugin");
|
56
|
-
const NoEmitOnErrorsPlugin = require("./NoEmitOnErrorsPlugin");
|
57
|
-
const NamedModulesPlugin = require("./NamedModulesPlugin");
|
58
|
-
const NamedChunksPlugin = require("./NamedChunksPlugin");
|
59
|
-
const DefinePlugin = require("./DefinePlugin");
|
60
|
-
const SizeLimitsPlugin = require("./performance/SizeLimitsPlugin");
|
61
|
-
|
62
|
-
class WebpackOptionsApply extends OptionsApply {
|
63
|
-
constructor() {
|
64
|
-
super();
|
65
|
-
}
|
66
|
-
|
67
|
-
process(options, compiler) {
|
68
|
-
let ExternalsPlugin;
|
69
|
-
compiler.outputPath = options.output.path;
|
70
|
-
compiler.recordsInputPath = options.recordsInputPath || options.recordsPath;
|
71
|
-
compiler.recordsOutputPath =
|
72
|
-
options.recordsOutputPath || options.recordsPath;
|
73
|
-
compiler.name = options.name;
|
74
|
-
compiler.dependencies = options.dependencies;
|
75
|
-
if (typeof options.target === "string") {
|
76
|
-
let JsonpTemplatePlugin;
|
77
|
-
let FetchCompileWasmTemplatePlugin;
|
78
|
-
let ReadFileCompileWasmTemplatePlugin;
|
79
|
-
let NodeSourcePlugin;
|
80
|
-
let NodeTargetPlugin;
|
81
|
-
let NodeTemplatePlugin;
|
82
|
-
|
83
|
-
switch (options.target) {
|
84
|
-
case "web":
|
85
|
-
JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
|
86
|
-
FetchCompileWasmTemplatePlugin = require("./web/FetchCompileWasmTemplatePlugin");
|
87
|
-
NodeSourcePlugin = require("./node/NodeSourcePlugin");
|
88
|
-
new JsonpTemplatePlugin().apply(compiler);
|
89
|
-
new FetchCompileWasmTemplatePlugin().apply(compiler);
|
90
|
-
new FunctionModulePlugin().apply(compiler);
|
91
|
-
new NodeSourcePlugin(options.node).apply(compiler);
|
92
|
-
new LoaderTargetPlugin(options.target).apply(compiler);
|
93
|
-
break;
|
94
|
-
case "webworker": {
|
95
|
-
let WebWorkerTemplatePlugin = require("./webworker/WebWorkerTemplatePlugin");
|
96
|
-
FetchCompileWasmTemplatePlugin = require("./web/FetchCompileWasmTemplatePlugin");
|
97
|
-
NodeSourcePlugin = require("./node/NodeSourcePlugin");
|
98
|
-
new WebWorkerTemplatePlugin().apply(compiler);
|
99
|
-
new FetchCompileWasmTemplatePlugin().apply(compiler);
|
100
|
-
new FunctionModulePlugin().apply(compiler);
|
101
|
-
new NodeSourcePlugin(options.node).apply(compiler);
|
102
|
-
new LoaderTargetPlugin(options.target).apply(compiler);
|
103
|
-
break;
|
104
|
-
}
|
105
|
-
case "node":
|
106
|
-
case "async-node":
|
107
|
-
NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
|
108
|
-
ReadFileCompileWasmTemplatePlugin = require("./node/ReadFileCompileWasmTemplatePlugin");
|
109
|
-
NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
110
|
-
new NodeTemplatePlugin({
|
111
|
-
asyncChunkLoading: options.target === "async-node"
|
112
|
-
}).apply(compiler);
|
113
|
-
new ReadFileCompileWasmTemplatePlugin().apply(compiler);
|
114
|
-
new FunctionModulePlugin().apply(compiler);
|
115
|
-
new NodeTargetPlugin().apply(compiler);
|
116
|
-
new LoaderTargetPlugin("node").apply(compiler);
|
117
|
-
break;
|
118
|
-
case "node-webkit":
|
119
|
-
JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
|
120
|
-
NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
121
|
-
ExternalsPlugin = require("./ExternalsPlugin");
|
122
|
-
new JsonpTemplatePlugin().apply(compiler);
|
123
|
-
new FunctionModulePlugin().apply(compiler);
|
124
|
-
new NodeTargetPlugin().apply(compiler);
|
125
|
-
new ExternalsPlugin("commonjs", "nw.gui").apply(compiler);
|
126
|
-
new LoaderTargetPlugin(options.target).apply(compiler);
|
127
|
-
break;
|
128
|
-
case "electron-main":
|
129
|
-
NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
|
130
|
-
NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
131
|
-
ExternalsPlugin = require("./ExternalsPlugin");
|
132
|
-
new NodeTemplatePlugin({
|
133
|
-
asyncChunkLoading: true
|
134
|
-
}).apply(compiler);
|
135
|
-
new FunctionModulePlugin().apply(compiler);
|
136
|
-
new NodeTargetPlugin().apply(compiler);
|
137
|
-
new ExternalsPlugin("commonjs", [
|
138
|
-
"app",
|
139
|
-
"auto-updater",
|
140
|
-
"browser-window",
|
141
|
-
"clipboard",
|
142
|
-
"content-tracing",
|
143
|
-
"crash-reporter",
|
144
|
-
"dialog",
|
145
|
-
"electron",
|
146
|
-
"global-shortcut",
|
147
|
-
"ipc",
|
148
|
-
"ipc-main",
|
149
|
-
"menu",
|
150
|
-
"menu-item",
|
151
|
-
"native-image",
|
152
|
-
"original-fs",
|
153
|
-
"power-monitor",
|
154
|
-
"power-save-blocker",
|
155
|
-
"protocol",
|
156
|
-
"screen",
|
157
|
-
"session",
|
158
|
-
"shell",
|
159
|
-
"tray",
|
160
|
-
"web-contents"
|
161
|
-
]).apply(compiler);
|
162
|
-
new LoaderTargetPlugin(options.target).apply(compiler);
|
163
|
-
break;
|
164
|
-
case "electron-renderer":
|
165
|
-
JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
|
166
|
-
NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
167
|
-
ExternalsPlugin = require("./ExternalsPlugin");
|
168
|
-
new JsonpTemplatePlugin().apply(compiler);
|
169
|
-
new FunctionModulePlugin().apply(compiler);
|
170
|
-
new NodeTargetPlugin().apply(compiler);
|
171
|
-
new ExternalsPlugin("commonjs", [
|
172
|
-
"clipboard",
|
173
|
-
"crash-reporter",
|
174
|
-
"desktop-capturer",
|
175
|
-
"electron",
|
176
|
-
"ipc",
|
177
|
-
"ipc-renderer",
|
178
|
-
"native-image",
|
179
|
-
"original-fs",
|
180
|
-
"remote",
|
181
|
-
"screen",
|
182
|
-
"shell",
|
183
|
-
"web-frame"
|
184
|
-
]).apply(compiler);
|
185
|
-
new LoaderTargetPlugin(options.target).apply(compiler);
|
186
|
-
break;
|
187
|
-
default:
|
188
|
-
throw new Error("Unsupported target '" + options.target + "'.");
|
189
|
-
}
|
190
|
-
} else if (options.target !== false) {
|
191
|
-
options.target(compiler);
|
192
|
-
} else {
|
193
|
-
throw new Error("Unsupported target '" + options.target + "'.");
|
194
|
-
}
|
195
|
-
|
196
|
-
if (options.output.library || options.output.libraryTarget !== "var") {
|
197
|
-
let LibraryTemplatePlugin = require("./LibraryTemplatePlugin");
|
198
|
-
new LibraryTemplatePlugin(
|
199
|
-
options.output.library,
|
200
|
-
options.output.libraryTarget,
|
201
|
-
options.output.umdNamedDefine,
|
202
|
-
options.output.auxiliaryComment || "",
|
203
|
-
options.output.libraryExport
|
204
|
-
).apply(compiler);
|
205
|
-
}
|
206
|
-
if (options.externals) {
|
207
|
-
ExternalsPlugin = require("./ExternalsPlugin");
|
208
|
-
new ExternalsPlugin(
|
209
|
-
options.output.libraryTarget,
|
210
|
-
options.externals
|
211
|
-
).apply(compiler);
|
212
|
-
}
|
213
|
-
|
214
|
-
let noSources;
|
215
|
-
let legacy;
|
216
|
-
let modern;
|
217
|
-
let comment;
|
218
|
-
if (
|
219
|
-
options.devtool &&
|
220
|
-
(options.devtool.includes("sourcemap") ||
|
221
|
-
options.devtool.includes("source-map"))
|
222
|
-
) {
|
223
|
-
const hidden = options.devtool.includes("hidden");
|
224
|
-
const inline = options.devtool.includes("inline");
|
225
|
-
const evalWrapped = options.devtool.includes("eval");
|
226
|
-
const cheap = options.devtool.includes("cheap");
|
227
|
-
const moduleMaps = options.devtool.includes("module");
|
228
|
-
noSources = options.devtool.includes("nosources");
|
229
|
-
legacy = options.devtool.includes("@");
|
230
|
-
modern = options.devtool.includes("#");
|
231
|
-
comment =
|
232
|
-
legacy && modern
|
233
|
-
? "\n/*\n//@ source" +
|
234
|
-
"MappingURL=[url]\n//# source" +
|
235
|
-
"MappingURL=[url]\n*/"
|
236
|
-
: legacy
|
237
|
-
? "\n/*\n//@ source" + "MappingURL=[url]\n*/"
|
238
|
-
: modern
|
239
|
-
? "\n//# source" + "MappingURL=[url]"
|
240
|
-
: null;
|
241
|
-
let Plugin = evalWrapped
|
242
|
-
? EvalSourceMapDevToolPlugin
|
243
|
-
: SourceMapDevToolPlugin;
|
244
|
-
new Plugin({
|
245
|
-
filename: inline ? null : options.output.sourceMapFilename,
|
246
|
-
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
|
247
|
-
fallbackModuleFilenameTemplate:
|
248
|
-
options.output.devtoolFallbackModuleFilenameTemplate,
|
249
|
-
append: hidden ? false : comment,
|
250
|
-
module: moduleMaps ? true : cheap ? false : true,
|
251
|
-
columns: cheap ? false : true,
|
252
|
-
lineToLine: options.output.devtoolLineToLine,
|
253
|
-
noSources: noSources,
|
254
|
-
namespace: options.output.devtoolNamespace
|
255
|
-
}).apply(compiler);
|
256
|
-
} else if (options.devtool && options.devtool.includes("eval")) {
|
257
|
-
legacy = options.devtool.includes("@");
|
258
|
-
modern = options.devtool.includes("#");
|
259
|
-
comment =
|
260
|
-
legacy && modern
|
261
|
-
? "\n//@ sourceURL=[url]\n//# sourceURL=[url]"
|
262
|
-
: legacy
|
263
|
-
? "\n//@ sourceURL=[url]"
|
264
|
-
: modern
|
265
|
-
? "\n//# sourceURL=[url]"
|
266
|
-
: null;
|
267
|
-
new EvalDevToolModulePlugin({
|
268
|
-
sourceUrlComment: comment,
|
269
|
-
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
|
270
|
-
namespace: options.output.devtoolNamespace
|
271
|
-
}).apply(compiler);
|
272
|
-
}
|
273
|
-
|
274
|
-
new JavascriptModulesPlugin().apply(compiler);
|
275
|
-
new JsonModulesPlugin().apply(compiler);
|
276
|
-
new WebAssemblyModulesPlugin().apply(compiler);
|
277
|
-
|
278
|
-
new EntryOptionPlugin().apply(compiler);
|
279
|
-
compiler.hooks.entryOption.call(options.context, options.entry);
|
280
|
-
|
281
|
-
new CompatibilityPlugin().apply(compiler);
|
282
|
-
new HarmonyModulesPlugin(options.module).apply(compiler);
|
283
|
-
new AMDPlugin(options.module, options.amd || {}).apply(compiler);
|
284
|
-
new CommonJsPlugin(options.module).apply(compiler);
|
285
|
-
new LoaderPlugin().apply(compiler);
|
286
|
-
new NodeStuffPlugin(options.node).apply(compiler);
|
287
|
-
new RequireJsStuffPlugin().apply(compiler);
|
288
|
-
new APIPlugin().apply(compiler);
|
289
|
-
new ConstPlugin().apply(compiler);
|
290
|
-
new UseStrictPlugin().apply(compiler);
|
291
|
-
new RequireIncludePlugin().apply(compiler);
|
292
|
-
new RequireEnsurePlugin().apply(compiler);
|
293
|
-
new RequireContextPlugin(
|
294
|
-
options.resolve.modules,
|
295
|
-
options.resolve.extensions,
|
296
|
-
options.resolve.mainFiles
|
297
|
-
).apply(compiler);
|
298
|
-
new ImportPlugin(options.module).apply(compiler);
|
299
|
-
new SystemPlugin(options.module).apply(compiler);
|
300
|
-
|
301
|
-
if (typeof options.mode !== "string")
|
302
|
-
new WarnNoModeSetPlugin().apply(compiler);
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
if (options.optimization.
|
310
|
-
new
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
if (options.optimization.
|
316
|
-
new
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
if (options.optimization.
|
322
|
-
new
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
if (options.optimization.
|
328
|
-
new
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
if (options.optimization.
|
334
|
-
new
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
}
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
).apply(compiler);
|
361
|
-
}
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const OptionsApply = require("./OptionsApply");
|
8
|
+
|
9
|
+
const JavascriptModulesPlugin = require("./JavascriptModulesPlugin");
|
10
|
+
const JsonModulesPlugin = require("./JsonModulesPlugin");
|
11
|
+
const WebAssemblyModulesPlugin = require("./wasm/WebAssemblyModulesPlugin");
|
12
|
+
|
13
|
+
const LoaderTargetPlugin = require("./LoaderTargetPlugin");
|
14
|
+
const FunctionModulePlugin = require("./FunctionModulePlugin");
|
15
|
+
const EvalDevToolModulePlugin = require("./EvalDevToolModulePlugin");
|
16
|
+
const SourceMapDevToolPlugin = require("./SourceMapDevToolPlugin");
|
17
|
+
const EvalSourceMapDevToolPlugin = require("./EvalSourceMapDevToolPlugin");
|
18
|
+
|
19
|
+
const EntryOptionPlugin = require("./EntryOptionPlugin");
|
20
|
+
const RecordIdsPlugin = require("./RecordIdsPlugin");
|
21
|
+
|
22
|
+
const APIPlugin = require("./APIPlugin");
|
23
|
+
const ConstPlugin = require("./ConstPlugin");
|
24
|
+
const RequireJsStuffPlugin = require("./RequireJsStuffPlugin");
|
25
|
+
const NodeStuffPlugin = require("./NodeStuffPlugin");
|
26
|
+
const CompatibilityPlugin = require("./CompatibilityPlugin");
|
27
|
+
|
28
|
+
const TemplatedPathPlugin = require("./TemplatedPathPlugin");
|
29
|
+
const WarnCaseSensitiveModulesPlugin = require("./WarnCaseSensitiveModulesPlugin");
|
30
|
+
const UseStrictPlugin = require("./UseStrictPlugin");
|
31
|
+
|
32
|
+
const LoaderPlugin = require("./dependencies/LoaderPlugin");
|
33
|
+
const CommonJsPlugin = require("./dependencies/CommonJsPlugin");
|
34
|
+
const HarmonyModulesPlugin = require("./dependencies/HarmonyModulesPlugin");
|
35
|
+
const SystemPlugin = require("./dependencies/SystemPlugin");
|
36
|
+
const ImportPlugin = require("./dependencies/ImportPlugin");
|
37
|
+
const AMDPlugin = require("./dependencies/AMDPlugin");
|
38
|
+
const RequireContextPlugin = require("./dependencies/RequireContextPlugin");
|
39
|
+
const RequireEnsurePlugin = require("./dependencies/RequireEnsurePlugin");
|
40
|
+
const RequireIncludePlugin = require("./dependencies/RequireIncludePlugin");
|
41
|
+
|
42
|
+
const WarnNoModeSetPlugin = require("./WarnNoModeSetPlugin");
|
43
|
+
|
44
|
+
const EnsureChunkConditionsPlugin = require("./optimize/EnsureChunkConditionsPlugin");
|
45
|
+
const RemoveParentModulesPlugin = require("./optimize/RemoveParentModulesPlugin");
|
46
|
+
const RemoveEmptyChunksPlugin = require("./optimize/RemoveEmptyChunksPlugin");
|
47
|
+
const MergeDuplicateChunksPlugin = require("./optimize/MergeDuplicateChunksPlugin");
|
48
|
+
const FlagIncludedChunksPlugin = require("./optimize/FlagIncludedChunksPlugin");
|
49
|
+
const OccurrenceOrderPlugin = require("./optimize/OccurrenceOrderPlugin");
|
50
|
+
const SideEffectsFlagPlugin = require("./optimize/SideEffectsFlagPlugin");
|
51
|
+
const FlagDependencyUsagePlugin = require("./FlagDependencyUsagePlugin");
|
52
|
+
const FlagDependencyExportsPlugin = require("./FlagDependencyExportsPlugin");
|
53
|
+
const ModuleConcatenationPlugin = require("./optimize/ModuleConcatenationPlugin");
|
54
|
+
const SplitChunksPlugin = require("./optimize/SplitChunksPlugin");
|
55
|
+
const RuntimeChunkPlugin = require("./optimize/RuntimeChunkPlugin");
|
56
|
+
const NoEmitOnErrorsPlugin = require("./NoEmitOnErrorsPlugin");
|
57
|
+
const NamedModulesPlugin = require("./NamedModulesPlugin");
|
58
|
+
const NamedChunksPlugin = require("./NamedChunksPlugin");
|
59
|
+
const DefinePlugin = require("./DefinePlugin");
|
60
|
+
const SizeLimitsPlugin = require("./performance/SizeLimitsPlugin");
|
61
|
+
|
62
|
+
class WebpackOptionsApply extends OptionsApply {
|
63
|
+
constructor() {
|
64
|
+
super();
|
65
|
+
}
|
66
|
+
|
67
|
+
process(options, compiler) {
|
68
|
+
let ExternalsPlugin;
|
69
|
+
compiler.outputPath = options.output.path;
|
70
|
+
compiler.recordsInputPath = options.recordsInputPath || options.recordsPath;
|
71
|
+
compiler.recordsOutputPath =
|
72
|
+
options.recordsOutputPath || options.recordsPath;
|
73
|
+
compiler.name = options.name;
|
74
|
+
compiler.dependencies = options.dependencies;
|
75
|
+
if (typeof options.target === "string") {
|
76
|
+
let JsonpTemplatePlugin;
|
77
|
+
let FetchCompileWasmTemplatePlugin;
|
78
|
+
let ReadFileCompileWasmTemplatePlugin;
|
79
|
+
let NodeSourcePlugin;
|
80
|
+
let NodeTargetPlugin;
|
81
|
+
let NodeTemplatePlugin;
|
82
|
+
|
83
|
+
switch (options.target) {
|
84
|
+
case "web":
|
85
|
+
JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
|
86
|
+
FetchCompileWasmTemplatePlugin = require("./web/FetchCompileWasmTemplatePlugin");
|
87
|
+
NodeSourcePlugin = require("./node/NodeSourcePlugin");
|
88
|
+
new JsonpTemplatePlugin().apply(compiler);
|
89
|
+
new FetchCompileWasmTemplatePlugin().apply(compiler);
|
90
|
+
new FunctionModulePlugin().apply(compiler);
|
91
|
+
new NodeSourcePlugin(options.node).apply(compiler);
|
92
|
+
new LoaderTargetPlugin(options.target).apply(compiler);
|
93
|
+
break;
|
94
|
+
case "webworker": {
|
95
|
+
let WebWorkerTemplatePlugin = require("./webworker/WebWorkerTemplatePlugin");
|
96
|
+
FetchCompileWasmTemplatePlugin = require("./web/FetchCompileWasmTemplatePlugin");
|
97
|
+
NodeSourcePlugin = require("./node/NodeSourcePlugin");
|
98
|
+
new WebWorkerTemplatePlugin().apply(compiler);
|
99
|
+
new FetchCompileWasmTemplatePlugin().apply(compiler);
|
100
|
+
new FunctionModulePlugin().apply(compiler);
|
101
|
+
new NodeSourcePlugin(options.node).apply(compiler);
|
102
|
+
new LoaderTargetPlugin(options.target).apply(compiler);
|
103
|
+
break;
|
104
|
+
}
|
105
|
+
case "node":
|
106
|
+
case "async-node":
|
107
|
+
NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
|
108
|
+
ReadFileCompileWasmTemplatePlugin = require("./node/ReadFileCompileWasmTemplatePlugin");
|
109
|
+
NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
110
|
+
new NodeTemplatePlugin({
|
111
|
+
asyncChunkLoading: options.target === "async-node"
|
112
|
+
}).apply(compiler);
|
113
|
+
new ReadFileCompileWasmTemplatePlugin().apply(compiler);
|
114
|
+
new FunctionModulePlugin().apply(compiler);
|
115
|
+
new NodeTargetPlugin().apply(compiler);
|
116
|
+
new LoaderTargetPlugin("node").apply(compiler);
|
117
|
+
break;
|
118
|
+
case "node-webkit":
|
119
|
+
JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
|
120
|
+
NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
121
|
+
ExternalsPlugin = require("./ExternalsPlugin");
|
122
|
+
new JsonpTemplatePlugin().apply(compiler);
|
123
|
+
new FunctionModulePlugin().apply(compiler);
|
124
|
+
new NodeTargetPlugin().apply(compiler);
|
125
|
+
new ExternalsPlugin("commonjs", "nw.gui").apply(compiler);
|
126
|
+
new LoaderTargetPlugin(options.target).apply(compiler);
|
127
|
+
break;
|
128
|
+
case "electron-main":
|
129
|
+
NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
|
130
|
+
NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
131
|
+
ExternalsPlugin = require("./ExternalsPlugin");
|
132
|
+
new NodeTemplatePlugin({
|
133
|
+
asyncChunkLoading: true
|
134
|
+
}).apply(compiler);
|
135
|
+
new FunctionModulePlugin().apply(compiler);
|
136
|
+
new NodeTargetPlugin().apply(compiler);
|
137
|
+
new ExternalsPlugin("commonjs", [
|
138
|
+
"app",
|
139
|
+
"auto-updater",
|
140
|
+
"browser-window",
|
141
|
+
"clipboard",
|
142
|
+
"content-tracing",
|
143
|
+
"crash-reporter",
|
144
|
+
"dialog",
|
145
|
+
"electron",
|
146
|
+
"global-shortcut",
|
147
|
+
"ipc",
|
148
|
+
"ipc-main",
|
149
|
+
"menu",
|
150
|
+
"menu-item",
|
151
|
+
"native-image",
|
152
|
+
"original-fs",
|
153
|
+
"power-monitor",
|
154
|
+
"power-save-blocker",
|
155
|
+
"protocol",
|
156
|
+
"screen",
|
157
|
+
"session",
|
158
|
+
"shell",
|
159
|
+
"tray",
|
160
|
+
"web-contents"
|
161
|
+
]).apply(compiler);
|
162
|
+
new LoaderTargetPlugin(options.target).apply(compiler);
|
163
|
+
break;
|
164
|
+
case "electron-renderer":
|
165
|
+
JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
|
166
|
+
NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
167
|
+
ExternalsPlugin = require("./ExternalsPlugin");
|
168
|
+
new JsonpTemplatePlugin().apply(compiler);
|
169
|
+
new FunctionModulePlugin().apply(compiler);
|
170
|
+
new NodeTargetPlugin().apply(compiler);
|
171
|
+
new ExternalsPlugin("commonjs", [
|
172
|
+
"clipboard",
|
173
|
+
"crash-reporter",
|
174
|
+
"desktop-capturer",
|
175
|
+
"electron",
|
176
|
+
"ipc",
|
177
|
+
"ipc-renderer",
|
178
|
+
"native-image",
|
179
|
+
"original-fs",
|
180
|
+
"remote",
|
181
|
+
"screen",
|
182
|
+
"shell",
|
183
|
+
"web-frame"
|
184
|
+
]).apply(compiler);
|
185
|
+
new LoaderTargetPlugin(options.target).apply(compiler);
|
186
|
+
break;
|
187
|
+
default:
|
188
|
+
throw new Error("Unsupported target '" + options.target + "'.");
|
189
|
+
}
|
190
|
+
} else if (options.target !== false) {
|
191
|
+
options.target(compiler);
|
192
|
+
} else {
|
193
|
+
throw new Error("Unsupported target '" + options.target + "'.");
|
194
|
+
}
|
195
|
+
|
196
|
+
if (options.output.library || options.output.libraryTarget !== "var") {
|
197
|
+
let LibraryTemplatePlugin = require("./LibraryTemplatePlugin");
|
198
|
+
new LibraryTemplatePlugin(
|
199
|
+
options.output.library,
|
200
|
+
options.output.libraryTarget,
|
201
|
+
options.output.umdNamedDefine,
|
202
|
+
options.output.auxiliaryComment || "",
|
203
|
+
options.output.libraryExport
|
204
|
+
).apply(compiler);
|
205
|
+
}
|
206
|
+
if (options.externals) {
|
207
|
+
ExternalsPlugin = require("./ExternalsPlugin");
|
208
|
+
new ExternalsPlugin(
|
209
|
+
options.output.libraryTarget,
|
210
|
+
options.externals
|
211
|
+
).apply(compiler);
|
212
|
+
}
|
213
|
+
|
214
|
+
let noSources;
|
215
|
+
let legacy;
|
216
|
+
let modern;
|
217
|
+
let comment;
|
218
|
+
if (
|
219
|
+
options.devtool &&
|
220
|
+
(options.devtool.includes("sourcemap") ||
|
221
|
+
options.devtool.includes("source-map"))
|
222
|
+
) {
|
223
|
+
const hidden = options.devtool.includes("hidden");
|
224
|
+
const inline = options.devtool.includes("inline");
|
225
|
+
const evalWrapped = options.devtool.includes("eval");
|
226
|
+
const cheap = options.devtool.includes("cheap");
|
227
|
+
const moduleMaps = options.devtool.includes("module");
|
228
|
+
noSources = options.devtool.includes("nosources");
|
229
|
+
legacy = options.devtool.includes("@");
|
230
|
+
modern = options.devtool.includes("#");
|
231
|
+
comment =
|
232
|
+
legacy && modern
|
233
|
+
? "\n/*\n//@ source" +
|
234
|
+
"MappingURL=[url]\n//# source" +
|
235
|
+
"MappingURL=[url]\n*/"
|
236
|
+
: legacy
|
237
|
+
? "\n/*\n//@ source" + "MappingURL=[url]\n*/"
|
238
|
+
: modern
|
239
|
+
? "\n//# source" + "MappingURL=[url]"
|
240
|
+
: null;
|
241
|
+
let Plugin = evalWrapped
|
242
|
+
? EvalSourceMapDevToolPlugin
|
243
|
+
: SourceMapDevToolPlugin;
|
244
|
+
new Plugin({
|
245
|
+
filename: inline ? null : options.output.sourceMapFilename,
|
246
|
+
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
|
247
|
+
fallbackModuleFilenameTemplate:
|
248
|
+
options.output.devtoolFallbackModuleFilenameTemplate,
|
249
|
+
append: hidden ? false : comment,
|
250
|
+
module: moduleMaps ? true : cheap ? false : true,
|
251
|
+
columns: cheap ? false : true,
|
252
|
+
lineToLine: options.output.devtoolLineToLine,
|
253
|
+
noSources: noSources,
|
254
|
+
namespace: options.output.devtoolNamespace
|
255
|
+
}).apply(compiler);
|
256
|
+
} else if (options.devtool && options.devtool.includes("eval")) {
|
257
|
+
legacy = options.devtool.includes("@");
|
258
|
+
modern = options.devtool.includes("#");
|
259
|
+
comment =
|
260
|
+
legacy && modern
|
261
|
+
? "\n//@ sourceURL=[url]\n//# sourceURL=[url]"
|
262
|
+
: legacy
|
263
|
+
? "\n//@ sourceURL=[url]"
|
264
|
+
: modern
|
265
|
+
? "\n//# sourceURL=[url]"
|
266
|
+
: null;
|
267
|
+
new EvalDevToolModulePlugin({
|
268
|
+
sourceUrlComment: comment,
|
269
|
+
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
|
270
|
+
namespace: options.output.devtoolNamespace
|
271
|
+
}).apply(compiler);
|
272
|
+
}
|
273
|
+
|
274
|
+
new JavascriptModulesPlugin().apply(compiler);
|
275
|
+
new JsonModulesPlugin().apply(compiler);
|
276
|
+
new WebAssemblyModulesPlugin().apply(compiler);
|
277
|
+
|
278
|
+
new EntryOptionPlugin().apply(compiler);
|
279
|
+
compiler.hooks.entryOption.call(options.context, options.entry);
|
280
|
+
|
281
|
+
new CompatibilityPlugin().apply(compiler);
|
282
|
+
new HarmonyModulesPlugin(options.module).apply(compiler);
|
283
|
+
new AMDPlugin(options.module, options.amd || {}).apply(compiler);
|
284
|
+
new CommonJsPlugin(options.module).apply(compiler);
|
285
|
+
new LoaderPlugin().apply(compiler);
|
286
|
+
new NodeStuffPlugin(options.node).apply(compiler);
|
287
|
+
new RequireJsStuffPlugin().apply(compiler);
|
288
|
+
new APIPlugin().apply(compiler);
|
289
|
+
new ConstPlugin().apply(compiler);
|
290
|
+
new UseStrictPlugin().apply(compiler);
|
291
|
+
new RequireIncludePlugin().apply(compiler);
|
292
|
+
new RequireEnsurePlugin().apply(compiler);
|
293
|
+
new RequireContextPlugin(
|
294
|
+
options.resolve.modules,
|
295
|
+
options.resolve.extensions,
|
296
|
+
options.resolve.mainFiles
|
297
|
+
).apply(compiler);
|
298
|
+
new ImportPlugin(options.module).apply(compiler);
|
299
|
+
new SystemPlugin(options.module).apply(compiler);
|
300
|
+
|
301
|
+
if (typeof options.mode !== "string") {
|
302
|
+
new WarnNoModeSetPlugin().apply(compiler);
|
303
|
+
}
|
304
|
+
|
305
|
+
new EnsureChunkConditionsPlugin().apply(compiler);
|
306
|
+
if (options.optimization.removeAvailableModules) {
|
307
|
+
new RemoveParentModulesPlugin().apply(compiler);
|
308
|
+
}
|
309
|
+
if (options.optimization.removeEmptyChunks) {
|
310
|
+
new RemoveEmptyChunksPlugin().apply(compiler);
|
311
|
+
}
|
312
|
+
if (options.optimization.mergeDuplicateChunks) {
|
313
|
+
new MergeDuplicateChunksPlugin().apply(compiler);
|
314
|
+
}
|
315
|
+
if (options.optimization.flagIncludedChunks) {
|
316
|
+
new FlagIncludedChunksPlugin().apply(compiler);
|
317
|
+
}
|
318
|
+
if (options.optimization.occurrenceOrder) {
|
319
|
+
new OccurrenceOrderPlugin(true).apply(compiler);
|
320
|
+
}
|
321
|
+
if (options.optimization.sideEffects) {
|
322
|
+
new SideEffectsFlagPlugin().apply(compiler);
|
323
|
+
}
|
324
|
+
if (options.optimization.providedExports) {
|
325
|
+
new FlagDependencyExportsPlugin().apply(compiler);
|
326
|
+
}
|
327
|
+
if (options.optimization.usedExports) {
|
328
|
+
new FlagDependencyUsagePlugin().apply(compiler);
|
329
|
+
}
|
330
|
+
if (options.optimization.concatenateModules) {
|
331
|
+
new ModuleConcatenationPlugin().apply(compiler);
|
332
|
+
}
|
333
|
+
if (options.optimization.splitChunks) {
|
334
|
+
new SplitChunksPlugin(options.optimization.splitChunks).apply(compiler);
|
335
|
+
}
|
336
|
+
if (options.optimization.runtimeChunk) {
|
337
|
+
new RuntimeChunkPlugin(options.optimization.runtimeChunk).apply(compiler);
|
338
|
+
}
|
339
|
+
if (options.optimization.noEmitOnErrors) {
|
340
|
+
new NoEmitOnErrorsPlugin().apply(compiler);
|
341
|
+
}
|
342
|
+
if (options.optimization.namedModules) {
|
343
|
+
new NamedModulesPlugin().apply(compiler);
|
344
|
+
}
|
345
|
+
if (options.optimization.namedChunks) {
|
346
|
+
new NamedChunksPlugin().apply(compiler);
|
347
|
+
}
|
348
|
+
if (options.optimization.nodeEnv) {
|
349
|
+
new DefinePlugin({
|
350
|
+
"process.env.NODE_ENV": JSON.stringify(options.optimization.nodeEnv)
|
351
|
+
}).apply(compiler);
|
352
|
+
}
|
353
|
+
if (options.optimization.minimize) {
|
354
|
+
for (const minimizer of options.optimization.minimizer) {
|
355
|
+
minimizer.apply(compiler);
|
356
|
+
}
|
357
|
+
}
|
358
|
+
|
359
|
+
if (options.performance) {
|
360
|
+
new SizeLimitsPlugin(options.performance).apply(compiler);
|
361
|
+
}
|
362
|
+
|
363
|
+
new TemplatedPathPlugin().apply(compiler);
|
364
|
+
|
365
|
+
new RecordIdsPlugin({
|
366
|
+
portableIds: options.optimization.portableRecords
|
367
|
+
}).apply(compiler);
|
368
|
+
|
369
|
+
new WarnCaseSensitiveModulesPlugin().apply(compiler);
|
370
|
+
|
371
|
+
if (options.cache) {
|
372
|
+
let CachePlugin = require("./CachePlugin");
|
373
|
+
new CachePlugin(
|
374
|
+
typeof options.cache === "object" ? options.cache : null
|
375
|
+
).apply(compiler);
|
376
|
+
}
|
377
|
+
|
378
|
+
compiler.hooks.afterPlugins.call(compiler);
|
379
|
+
if (!compiler.inputFileSystem) {
|
380
|
+
throw new Error("No input filesystem provided");
|
381
|
+
}
|
382
|
+
compiler.resolverFactory.hooks.resolveOptions
|
383
|
+
.for("normal")
|
384
|
+
.tap("WebpackOptionsApply", resolveOptions => {
|
385
|
+
return Object.assign(
|
386
|
+
{
|
387
|
+
fileSystem: compiler.inputFileSystem
|
388
|
+
},
|
389
|
+
options.resolve,
|
390
|
+
resolveOptions
|
391
|
+
);
|
392
|
+
});
|
393
|
+
compiler.resolverFactory.hooks.resolveOptions
|
394
|
+
.for("context")
|
395
|
+
.tap("WebpackOptionsApply", resolveOptions => {
|
396
|
+
return Object.assign(
|
397
|
+
{
|
398
|
+
fileSystem: compiler.inputFileSystem,
|
399
|
+
resolveToContext: true
|
400
|
+
},
|
401
|
+
options.resolve,
|
402
|
+
resolveOptions
|
403
|
+
);
|
404
|
+
});
|
405
|
+
compiler.resolverFactory.hooks.resolveOptions
|
406
|
+
.for("loader")
|
407
|
+
.tap("WebpackOptionsApply", resolveOptions => {
|
408
|
+
return Object.assign(
|
409
|
+
{
|
410
|
+
fileSystem: compiler.inputFileSystem
|
411
|
+
},
|
412
|
+
options.resolveLoader,
|
413
|
+
resolveOptions
|
414
|
+
);
|
415
|
+
});
|
416
|
+
compiler.hooks.afterResolvers.call(compiler);
|
417
|
+
return options;
|
418
|
+
}
|
419
|
+
}
|
420
|
+
|
421
|
+
module.exports = WebpackOptionsApply;
|