webpack 1.13.3 → 1.14.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/LICENSE +22 -22
- package/README.md +310 -310
- package/buildin/amd-define.js +1 -1
- package/buildin/amd-options.js +1 -1
- package/buildin/module.js +10 -10
- package/hot/dev-server.js +63 -63
- package/hot/log-apply-result.js +25 -25
- package/hot/only-dev-server.js +77 -77
- package/hot/poll.js +37 -37
- package/hot/signal.js +65 -65
- package/lib/APIPlugin.js +49 -49
- package/lib/AbstractPlugin.js +22 -22
- package/lib/AmdMainTemplatePlugin.js +43 -43
- package/lib/ArrayMap.js +50 -50
- package/lib/AsyncDependenciesBlock.js +39 -39
- package/lib/AutomaticPrefetchPlugin.js +35 -35
- package/lib/BannerPlugin.js +34 -34
- package/lib/BasicEvaluatedExpression.js +140 -140
- package/lib/CachePlugin.js +43 -43
- package/lib/CaseSensitiveModulesWarning.js +16 -16
- package/lib/Chunk.js +252 -252
- package/lib/ChunkRenderError.js +17 -17
- package/lib/ChunkTemplate.js +37 -37
- package/lib/CompatibilityPlugin.js +42 -42
- package/lib/Compilation.js +891 -891
- package/lib/Compiler.js +407 -407
- package/lib/ConcatSource.js +5 -5
- package/lib/ConstPlugin.js +54 -54
- package/lib/ContextModule.js +130 -130
- package/lib/ContextModuleFactory.js +132 -132
- package/lib/ContextReplacementPlugin.js +93 -93
- package/lib/CriticalDependenciesWarning.js +24 -24
- package/lib/DefinePlugin.js +126 -126
- package/lib/DelegatedModule.js +69 -69
- package/lib/DelegatedModuleFactoryPlugin.js +51 -51
- package/lib/DelegatedPlugin.js +21 -21
- package/lib/DependenciesBlock.js +57 -57
- package/lib/DependenciesBlockVariable.js +41 -41
- package/lib/Dependency.js +54 -54
- package/lib/DllEntryPlugin.js +32 -32
- package/lib/DllModule.js +55 -55
- package/lib/DllModuleFactory.js +18 -18
- package/lib/DllPlugin.js +30 -30
- package/lib/DllReferencePlugin.js +26 -26
- package/lib/EntryModuleNotFoundError.js +15 -15
- package/lib/EntryOptionPlugin.js +28 -28
- package/lib/EnvironmentPlugin.js +28 -28
- package/lib/EvalDevToolModulePlugin.js +17 -17
- package/lib/EvalDevToolModuleTemplatePlugin.js +29 -29
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +68 -68
- package/lib/EvalSourceMapDevToolPlugin.js +25 -25
- package/lib/ExtendedAPIPlugin.js +45 -45
- package/lib/ExternalModule.js +89 -89
- package/lib/ExternalModuleFactoryPlugin.js +86 -86
- package/lib/ExternalsPlugin.js +16 -16
- package/lib/FunctionModulePlugin.js +18 -18
- package/lib/FunctionModuleTemplatePlugin.js +39 -39
- package/lib/HotModuleReplacement.runtime.js +486 -486
- package/lib/HotModuleReplacementPlugin.js +223 -223
- package/lib/HotUpdateChunkTemplate.js +28 -28
- package/lib/IgnorePlugin.js +32 -32
- package/lib/JsonpChunkTemplatePlugin.js +26 -26
- package/lib/JsonpExportMainTemplatePlugin.js +28 -28
- package/lib/JsonpHotUpdateChunkTemplatePlugin.js +26 -26
- package/lib/JsonpMainTemplate.runtime.js +56 -56
- package/lib/JsonpMainTemplatePlugin.js +162 -162
- package/lib/JsonpTemplatePlugin.js +17 -17
- package/lib/LibManifestPlugin.js +49 -49
- package/lib/LibraryTemplatePlugin.js +77 -77
- package/lib/LoaderTargetPlugin.js +16 -16
- package/lib/MainTemplate.js +169 -169
- package/lib/MemoryOutputFileSystem.js +5 -5
- package/lib/Module.js +116 -116
- package/lib/ModuleFilenameHelpers.js +157 -157
- package/lib/ModuleNotFoundError.js +17 -17
- package/lib/ModuleParseError.js +26 -26
- package/lib/ModuleParserHelpers.js +21 -21
- package/lib/ModuleReason.js +9 -9
- package/lib/ModuleTemplate.js +23 -23
- package/lib/MovedToPluginWarningPlugin.js +17 -17
- package/lib/MultiCompiler.js +166 -166
- package/lib/MultiEntryPlugin.js +31 -31
- package/lib/MultiModule.js +71 -71
- package/lib/MultiModuleFactory.js +18 -18
- package/lib/NamedModulesPlugin.js +21 -21
- package/lib/NewWatchingPlugin.js +12 -12
- package/lib/NoErrorsPlugin.js +18 -18
- package/lib/NodeStuffPlugin.js +99 -99
- package/lib/NormalModule.js +322 -322
- package/lib/NormalModuleFactory.js +171 -171
- package/lib/NormalModuleReplacementPlugin.js +40 -40
- package/lib/NullFactory.js +10 -10
- package/lib/OldWatchingPlugin.js +14 -14
- package/lib/OptionsApply.js +10 -10
- package/lib/OriginalSource.js +5 -5
- package/lib/Parser.js +938 -938
- package/lib/PrefetchPlugin.js +25 -25
- package/lib/ProgressPlugin.js +80 -80
- package/lib/ProvidePlugin.js +48 -48
- package/lib/RawModule.js +65 -65
- package/lib/RawSource.js +5 -5
- package/lib/RecordIdsPlugin.js +130 -130
- package/lib/RequestShortener.js +56 -56
- package/lib/RequireJsStuffPlugin.js +38 -38
- package/lib/ResolverPlugin.js +34 -34
- package/lib/SetVarMainTemplatePlugin.js +36 -36
- package/lib/SingleEntryPlugin.js +24 -24
- package/lib/Source.js +5 -5
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +33 -33
- package/lib/SourceMapDevToolPlugin.js +168 -168
- package/lib/SourceMapSource.js +5 -5
- package/lib/Stats.js +732 -732
- package/lib/Template.js +119 -119
- package/lib/TemplatedPathPlugin.js +111 -111
- package/lib/UmdMainTemplatePlugin.js +146 -146
- package/lib/UnsupportedFeatureWarning.js +14 -14
- package/lib/WarnCaseSensitiveModulesPlugin.js +27 -27
- package/lib/WatchIgnorePlugin.js +45 -45
- package/lib/WebpackOptionsApply.js +376 -376
- package/lib/WebpackOptionsDefaulter.js +112 -112
- package/lib/dependencies/AMDDefineDependency.js +63 -63
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +240 -240
- package/lib/dependencies/AMDPlugin.js +115 -115
- package/lib/dependencies/AMDRequireArrayDependency.js +34 -34
- package/lib/dependencies/AMDRequireContextDependency.js +18 -18
- package/lib/dependencies/AMDRequireDependenciesBlock.js +25 -25
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +145 -145
- package/lib/dependencies/AMDRequireDependency.js +64 -64
- package/lib/dependencies/AMDRequireItemDependency.js +17 -17
- package/lib/dependencies/CommonJsPlugin.js +93 -93
- package/lib/dependencies/CommonJsRequireContextDependency.js +18 -18
- package/lib/dependencies/CommonJsRequireDependency.js +17 -17
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +91 -91
- package/lib/dependencies/ConstDependency.js +29 -29
- package/lib/dependencies/ContextDependency.js +24 -24
- package/lib/dependencies/ContextDependencyHelpers.js +34 -34
- package/lib/dependencies/ContextDependencyTemplateAsId.js +22 -22
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +31 -31
- package/lib/dependencies/ContextElementDependency.js +17 -17
- package/lib/dependencies/DelegatedSourceDependency.js +14 -14
- package/lib/dependencies/DepBlockHelpers.js +41 -41
- package/lib/dependencies/DllEntryDependency.js +17 -17
- package/lib/dependencies/LabeledExportsDependency.js +21 -21
- package/lib/dependencies/LabeledModuleDependency.js +36 -36
- package/lib/dependencies/LabeledModuleDependencyParserPlugin.js +76 -76
- package/lib/dependencies/LabeledModulesPlugin.js +26 -26
- package/lib/dependencies/LoaderDependency.js +14 -14
- package/lib/dependencies/LoaderPlugin.js +61 -61
- package/lib/dependencies/LocalModule.js +19 -19
- package/lib/dependencies/LocalModuleDependency.js +23 -23
- package/lib/dependencies/LocalModulesHelpers.js +43 -43
- package/lib/dependencies/ModuleDependency.js +20 -20
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +22 -22
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +22 -22
- package/lib/dependencies/ModuleHotAcceptDependency.js +18 -18
- package/lib/dependencies/ModuleHotDeclineDependency.js +18 -18
- package/lib/dependencies/MultiEntryDependency.js +16 -16
- package/lib/dependencies/NullDependency.js +17 -17
- package/lib/dependencies/NullDependencyTemplate.js +8 -8
- package/lib/dependencies/PrefetchDependency.js +14 -14
- package/lib/dependencies/RequireContextDependency.js +17 -17
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +33 -33
- package/lib/dependencies/RequireContextPlugin.js +64 -64
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +20 -20
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +66 -66
- package/lib/dependencies/RequireEnsureDependency.js +29 -29
- package/lib/dependencies/RequireEnsureItemDependency.js +16 -16
- package/lib/dependencies/RequireEnsurePlugin.js +38 -38
- package/lib/dependencies/RequireHeaderDependency.js +25 -25
- package/lib/dependencies/RequireIncludeDependency.js +25 -25
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +18 -18
- package/lib/dependencies/RequireIncludePlugin.js +31 -31
- package/lib/dependencies/RequireResolveContextDependency.js +18 -18
- package/lib/dependencies/RequireResolveDependency.js +17 -17
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +69 -69
- package/lib/dependencies/RequireResolveHeaderDependency.js +25 -25
- package/lib/dependencies/SingleEntryDependency.js +14 -14
- package/lib/dependencies/TemplateArgumentDependency.js +26 -26
- package/lib/dependencies/WebpackMissingModule.js +23 -23
- package/lib/dependencies/getFunctionExpression.js +43 -43
- package/lib/node/NodeChunkTemplatePlugin.js +22 -22
- package/lib/node/NodeEnvironmentPlugin.js +25 -25
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +24 -24
- package/lib/node/NodeMainTemplate.runtime.js +20 -20
- package/lib/node/NodeMainTemplateAsync.runtime.js +34 -34
- package/lib/node/NodeMainTemplatePlugin.js +164 -164
- package/lib/node/NodeOutputFileSystem.js +17 -17
- package/lib/node/NodeSourcePlugin.js +85 -75
- package/lib/node/NodeTargetPlugin.js +12 -12
- package/lib/node/NodeTemplatePlugin.js +21 -21
- package/lib/node/NodeWatchFileSystem.js +65 -65
- package/lib/node/OldNodeWatchFileSystem.js +265 -265
- package/lib/optimize/AggressiveMergingPlugin.js +115 -115
- package/lib/optimize/CommonsChunkPlugin.js +178 -178
- package/lib/optimize/DedupePlugin.js +227 -227
- package/lib/optimize/FlagIncludedChunksPlugin.js +24 -24
- package/lib/optimize/LimitChunkCountPlugin.js +55 -55
- package/lib/optimize/MergeDuplicateChunksPlugin.js +30 -30
- package/lib/optimize/MinChunkSizePlugin.js +61 -61
- package/lib/optimize/OccurenceOrderPlugin.js +5 -5
- package/lib/optimize/OccurrenceOrderPlugin.js +91 -91
- package/lib/optimize/RemoveEmptyChunksPlugin.js +19 -19
- package/lib/optimize/RemoveParentModulesPlugin.js +50 -50
- package/lib/optimize/UglifyJsPlugin.js +146 -146
- package/lib/removeAndDo.js +13 -13
- package/lib/web/WebEnvironmentPlugin.js +16 -16
- package/lib/webpack.js +113 -113
- package/lib/webpack.web.js +27 -27
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +26 -26
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +78 -78
- package/lib/webworker/WebWorkerTemplatePlugin.js +15 -15
- package/package.json +4 -4
@@ -1,376 +1,376 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
var OptionsApply = require("./OptionsApply");
|
6
|
-
|
7
|
-
var LoaderTargetPlugin = require("./LoaderTargetPlugin");
|
8
|
-
var FunctionModulePlugin = require("./FunctionModulePlugin");
|
9
|
-
var EvalDevToolModulePlugin = require("./EvalDevToolModulePlugin");
|
10
|
-
var SourceMapDevToolPlugin = require("./SourceMapDevToolPlugin");
|
11
|
-
var EvalSourceMapDevToolPlugin = require("./EvalSourceMapDevToolPlugin");
|
12
|
-
|
13
|
-
var EntryOptionPlugin = require("./EntryOptionPlugin");
|
14
|
-
var RecordIdsPlugin = require("./RecordIdsPlugin");
|
15
|
-
|
16
|
-
var APIPlugin = require("./APIPlugin");
|
17
|
-
var ConstPlugin = require("./ConstPlugin");
|
18
|
-
var RequireJsStuffPlugin = require("./RequireJsStuffPlugin");
|
19
|
-
var NodeStuffPlugin = require("./NodeStuffPlugin");
|
20
|
-
var CompatibilityPlugin = require("./CompatibilityPlugin");
|
21
|
-
var DefinePlugin = require("./DefinePlugin");
|
22
|
-
|
23
|
-
var MovedToPluginWarningPlugin = require("./MovedToPluginWarningPlugin");
|
24
|
-
var TemplatedPathPlugin = require("./TemplatedPathPlugin");
|
25
|
-
var WarnCaseSensitiveModulesPlugin = require("./WarnCaseSensitiveModulesPlugin");
|
26
|
-
|
27
|
-
var LoaderPlugin = require("./dependencies/LoaderPlugin");
|
28
|
-
var CommonJsPlugin = require("./dependencies/CommonJsPlugin");
|
29
|
-
var AMDPlugin = require("./dependencies/AMDPlugin");
|
30
|
-
var RequireContextPlugin = require("./dependencies/RequireContextPlugin");
|
31
|
-
var RequireEnsurePlugin = require("./dependencies/RequireEnsurePlugin");
|
32
|
-
var RequireIncludePlugin = require("./dependencies/RequireIncludePlugin");
|
33
|
-
|
34
|
-
var RemoveParentModulesPlugin = require("./optimize/RemoveParentModulesPlugin");
|
35
|
-
var RemoveEmptyChunksPlugin = require("./optimize/RemoveEmptyChunksPlugin");
|
36
|
-
var MergeDuplicateChunksPlugin = require("./optimize/MergeDuplicateChunksPlugin");
|
37
|
-
var FlagIncludedChunksPlugin = require("./optimize/FlagIncludedChunksPlugin");
|
38
|
-
|
39
|
-
var UnsafeCachePlugin = require("enhanced-resolve/lib/UnsafeCachePlugin");
|
40
|
-
var ModulesInDirectoriesPlugin = require("enhanced-resolve/lib/ModulesInDirectoriesPlugin");
|
41
|
-
var ModulesInRootPlugin = require("enhanced-resolve/lib/ModulesInRootPlugin");
|
42
|
-
var ModuleTemplatesPlugin = require("enhanced-resolve/lib/ModuleTemplatesPlugin");
|
43
|
-
var ModuleAsFilePlugin = require("enhanced-resolve/lib/ModuleAsFilePlugin");
|
44
|
-
var ModuleAsDirectoryPlugin = require("enhanced-resolve/lib/ModuleAsDirectoryPlugin");
|
45
|
-
var ModuleAliasPlugin = require("enhanced-resolve/lib/ModuleAliasPlugin");
|
46
|
-
var DirectoryDefaultFilePlugin = require("enhanced-resolve/lib/DirectoryDefaultFilePlugin");
|
47
|
-
var DirectoryDescriptionFilePlugin = require("enhanced-resolve/lib/DirectoryDescriptionFilePlugin");
|
48
|
-
var DirectoryDescriptionFileFieldAliasPlugin = require("enhanced-resolve/lib/DirectoryDescriptionFileFieldAliasPlugin");
|
49
|
-
var FileAppendPlugin = require("enhanced-resolve/lib/FileAppendPlugin");
|
50
|
-
var DirectoryResultPlugin = require("enhanced-resolve/lib/DirectoryResultPlugin");
|
51
|
-
var ResultSymlinkPlugin = require("enhanced-resolve/lib/ResultSymlinkPlugin");
|
52
|
-
|
53
|
-
function WebpackOptionsApply() {
|
54
|
-
OptionsApply.call(this);
|
55
|
-
}
|
56
|
-
module.exports = WebpackOptionsApply;
|
57
|
-
|
58
|
-
WebpackOptionsApply.prototype = Object.create(OptionsApply.prototype);
|
59
|
-
WebpackOptionsApply.prototype.process = function(options, compiler) {
|
60
|
-
compiler.context = options.context;
|
61
|
-
if(options.plugins && Array.isArray(options.plugins)) {
|
62
|
-
compiler.apply.apply(compiler, options.plugins);
|
63
|
-
}
|
64
|
-
compiler.outputPath = options.output.path;
|
65
|
-
compiler.recordsInputPath = options.recordsInputPath || options.recordsPath;
|
66
|
-
compiler.recordsOutputPath = options.recordsOutputPath || options.recordsPath;
|
67
|
-
compiler.name = options.name;
|
68
|
-
if(typeof options.target === "string") {
|
69
|
-
switch(options.target) {
|
70
|
-
case "web":
|
71
|
-
var JsonpTemplatePlugin = require("./JsonpTemplatePlugin");
|
72
|
-
var NodeSourcePlugin = require("./node/NodeSourcePlugin");
|
73
|
-
compiler.apply(
|
74
|
-
new JsonpTemplatePlugin(options.output),
|
75
|
-
new FunctionModulePlugin(options.output),
|
76
|
-
new NodeSourcePlugin(options.node),
|
77
|
-
new LoaderTargetPlugin("web")
|
78
|
-
);
|
79
|
-
break;
|
80
|
-
case "webworker":
|
81
|
-
var WebWorkerTemplatePlugin = require("./webworker/WebWorkerTemplatePlugin");
|
82
|
-
var NodeSourcePlugin = require("./node/NodeSourcePlugin");
|
83
|
-
compiler.apply(
|
84
|
-
new WebWorkerTemplatePlugin(options.output),
|
85
|
-
new FunctionModulePlugin(options.output),
|
86
|
-
new NodeSourcePlugin(options.node),
|
87
|
-
new LoaderTargetPlugin("webworker")
|
88
|
-
);
|
89
|
-
break;
|
90
|
-
case "node":
|
91
|
-
case "async-node":
|
92
|
-
var NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
|
93
|
-
var NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
94
|
-
compiler.apply(
|
95
|
-
new NodeTemplatePlugin(options.output, options.target === "async-node"),
|
96
|
-
new FunctionModulePlugin(options.output),
|
97
|
-
new NodeTargetPlugin(),
|
98
|
-
new LoaderTargetPlugin("node")
|
99
|
-
);
|
100
|
-
break;
|
101
|
-
case "node-webkit":
|
102
|
-
var JsonpTemplatePlugin = require("./JsonpTemplatePlugin");
|
103
|
-
var NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
104
|
-
var ExternalsPlugin = require("./ExternalsPlugin");
|
105
|
-
compiler.apply(
|
106
|
-
new JsonpTemplatePlugin(options.output),
|
107
|
-
new FunctionModulePlugin(options.output),
|
108
|
-
new NodeTargetPlugin(),
|
109
|
-
new ExternalsPlugin("commonjs", "nw.gui"),
|
110
|
-
new LoaderTargetPlugin("node-webkit")
|
111
|
-
);
|
112
|
-
break;
|
113
|
-
case "atom":
|
114
|
-
case "electron":
|
115
|
-
case "electron-main":
|
116
|
-
var NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
|
117
|
-
var NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
118
|
-
var ExternalsPlugin = require("./ExternalsPlugin");
|
119
|
-
compiler.apply(
|
120
|
-
new NodeTemplatePlugin(options.output, true),
|
121
|
-
new FunctionModulePlugin(options.output),
|
122
|
-
new NodeTargetPlugin(),
|
123
|
-
new ExternalsPlugin("commonjs", [
|
124
|
-
"app",
|
125
|
-
"auto-updater",
|
126
|
-
"browser-window",
|
127
|
-
"content-tracing",
|
128
|
-
"dialog",
|
129
|
-
"electron",
|
130
|
-
"global-shortcut",
|
131
|
-
"ipc",
|
132
|
-
"ipc-main",
|
133
|
-
"menu",
|
134
|
-
"menu-item",
|
135
|
-
"power-monitor",
|
136
|
-
"power-save-blocker",
|
137
|
-
"protocol",
|
138
|
-
"session",
|
139
|
-
"web-contents",
|
140
|
-
"tray",
|
141
|
-
"clipboard",
|
142
|
-
"crash-reporter",
|
143
|
-
"native-image",
|
144
|
-
"screen",
|
145
|
-
"shell"
|
146
|
-
]),
|
147
|
-
new LoaderTargetPlugin(options.target)
|
148
|
-
);
|
149
|
-
break;
|
150
|
-
case "electron-renderer":
|
151
|
-
var JsonpTemplatePlugin = require("./JsonpTemplatePlugin");
|
152
|
-
var NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
153
|
-
var ExternalsPlugin = require("./ExternalsPlugin");
|
154
|
-
compiler.apply(
|
155
|
-
new JsonpTemplatePlugin(options.output),
|
156
|
-
new FunctionModulePlugin(options.output),
|
157
|
-
new NodeTargetPlugin(),
|
158
|
-
new ExternalsPlugin("commonjs", [
|
159
|
-
"desktop-capturer",
|
160
|
-
"electron",
|
161
|
-
"ipc",
|
162
|
-
"ipc-renderer",
|
163
|
-
"remote",
|
164
|
-
"web-frame",
|
165
|
-
"clipboard",
|
166
|
-
"crash-reporter",
|
167
|
-
"native-image",
|
168
|
-
"screen",
|
169
|
-
"shell"
|
170
|
-
]),
|
171
|
-
new LoaderTargetPlugin(options.target)
|
172
|
-
);
|
173
|
-
break;
|
174
|
-
default:
|
175
|
-
throw new Error("Unsupported target '" + options.target + "'.");
|
176
|
-
}
|
177
|
-
} else if(options.target !== false) {
|
178
|
-
options.target(compiler);
|
179
|
-
} else {
|
180
|
-
throw new Error("Unsupported target '" + options.target + "'.");
|
181
|
-
}
|
182
|
-
if(options.output.library || options.output.libraryTarget !== "var") {
|
183
|
-
var LibraryTemplatePlugin = require("./LibraryTemplatePlugin");
|
184
|
-
compiler.apply(new LibraryTemplatePlugin(options.output.library, options.output.libraryTarget, options.output.umdNamedDefine));
|
185
|
-
}
|
186
|
-
if(options.externals) {
|
187
|
-
var ExternalsPlugin = require("./ExternalsPlugin");
|
188
|
-
compiler.apply(new ExternalsPlugin(options.output.libraryTarget, options.externals));
|
189
|
-
}
|
190
|
-
|
191
|
-
if(options.hot) {
|
192
|
-
compiler.apply(new MovedToPluginWarningPlugin("hot", "HotModuleReplacementPlugin"));
|
193
|
-
var HotModuleReplacementPlugin = require("./HotModuleReplacementPlugin");
|
194
|
-
compiler.apply(new HotModuleReplacementPlugin(options.output));
|
195
|
-
}
|
196
|
-
|
197
|
-
if(options.devtool && (options.devtool.indexOf("sourcemap") >= 0 || options.devtool.indexOf("source-map") >= 0)) {
|
198
|
-
var hidden = options.devtool.indexOf("hidden") >= 0;
|
199
|
-
var inline = options.devtool.indexOf("inline") >= 0;
|
200
|
-
var evalWrapped = options.devtool.indexOf("eval") >= 0;
|
201
|
-
var cheap = options.devtool.indexOf("cheap") >= 0;
|
202
|
-
var moduleMaps = options.devtool.indexOf("module") >= 0;
|
203
|
-
var noSources = options.devtool.indexOf("nosources") >= 0;
|
204
|
-
var legacy = options.devtool.indexOf("@") >= 0;
|
205
|
-
var modern = options.devtool.indexOf("#") >= 0;
|
206
|
-
var comment = legacy && modern ? "\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/" :
|
207
|
-
legacy ? "\n/*\n//@ sourceMappingURL=[url]\n*/" :
|
208
|
-
modern ? "\n//# sourceMappingURL=[url]" :
|
209
|
-
null;
|
210
|
-
var Plugin = evalWrapped ? EvalSourceMapDevToolPlugin : SourceMapDevToolPlugin;
|
211
|
-
compiler.apply(new Plugin({
|
212
|
-
filename: inline ? null : options.output.sourceMapFilename,
|
213
|
-
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
|
214
|
-
fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate,
|
215
|
-
append: hidden ? false : comment,
|
216
|
-
module: moduleMaps ? true : cheap ? false : true,
|
217
|
-
columns: cheap ? false : true,
|
218
|
-
lineToLine: options.output.devtoolLineToLine,
|
219
|
-
noSources: noSources,
|
220
|
-
}));
|
221
|
-
} else if(options.devtool && options.devtool.indexOf("eval") >= 0) {
|
222
|
-
var legacy = options.devtool.indexOf("@") >= 0;
|
223
|
-
var modern = options.devtool.indexOf("#") >= 0;
|
224
|
-
var comment = legacy && modern ? "//@ sourceURL=[url]\n//# sourceURL=[url]" :
|
225
|
-
legacy ? "//@ sourceURL=[url]" :
|
226
|
-
modern ? "//# sourceURL=[url]" :
|
227
|
-
null;
|
228
|
-
compiler.apply(new EvalDevToolModulePlugin(comment, options.output.devtoolModuleFilenameTemplate));
|
229
|
-
}
|
230
|
-
|
231
|
-
compiler.apply(new EntryOptionPlugin());
|
232
|
-
compiler.applyPluginsBailResult("entry-option", options.context, options.entry);
|
233
|
-
|
234
|
-
if(options.prefetch) {
|
235
|
-
compiler.apply(new MovedToPluginWarningPlugin("prefetch", "PrefetchPlugin"));
|
236
|
-
var PrefetchPlugin = require("./PrefetchPlugin");
|
237
|
-
options.prefetch.map(function(request) {
|
238
|
-
compiler.apply(new PrefetchPlugin(options.context, request));
|
239
|
-
});
|
240
|
-
}
|
241
|
-
compiler.apply(
|
242
|
-
new CompatibilityPlugin(),
|
243
|
-
new LoaderPlugin(),
|
244
|
-
new NodeStuffPlugin(options.node),
|
245
|
-
new RequireJsStuffPlugin(),
|
246
|
-
new APIPlugin(),
|
247
|
-
new ConstPlugin(),
|
248
|
-
new RequireIncludePlugin(),
|
249
|
-
new RequireEnsurePlugin(),
|
250
|
-
new RequireContextPlugin(options.resolve.modulesDirectories, options.resolve.extensions),
|
251
|
-
new AMDPlugin(options.module, options.amd || {}),
|
252
|
-
new CommonJsPlugin(options.module)
|
253
|
-
);
|
254
|
-
|
255
|
-
compiler.apply(
|
256
|
-
new RemoveParentModulesPlugin(),
|
257
|
-
new RemoveEmptyChunksPlugin(),
|
258
|
-
new MergeDuplicateChunksPlugin(),
|
259
|
-
new FlagIncludedChunksPlugin()
|
260
|
-
);
|
261
|
-
|
262
|
-
compiler.apply(new TemplatedPathPlugin());
|
263
|
-
|
264
|
-
compiler.apply(new RecordIdsPlugin());
|
265
|
-
|
266
|
-
compiler.apply(new WarnCaseSensitiveModulesPlugin());
|
267
|
-
|
268
|
-
if(options.optimize && options.optimize.occurenceOrder) {
|
269
|
-
compiler.apply(new MovedToPluginWarningPlugin("optimize.occurenceOrder", "optimize.OccurrenceOrderPlugin"));
|
270
|
-
var OccurrenceOrderPlugin = require("./optimize/OccurrenceOrderPlugin");
|
271
|
-
compiler.apply(new OccurrenceOrderPlugin(options.optimize.occurenceOrderPreferEntry));
|
272
|
-
}
|
273
|
-
|
274
|
-
if(options.optimize && options.optimize.minChunkSize) {
|
275
|
-
compiler.apply(new MovedToPluginWarningPlugin("optimize.minChunkSize", "optimize.MinChunkSizePlugin"));
|
276
|
-
var MinChunkSizePlugin = require("./optimize/MinChunkSizePlugin");
|
277
|
-
compiler.apply(new MinChunkSizePlugin(options.optimize));
|
278
|
-
}
|
279
|
-
|
280
|
-
if(options.optimize && options.optimize.maxChunks) {
|
281
|
-
compiler.apply(new MovedToPluginWarningPlugin("optimize.maxChunks", "optimize.LimitChunkCountPlugin"));
|
282
|
-
var LimitChunkCountPlugin = require("./optimize/LimitChunkCountPlugin");
|
283
|
-
compiler.apply(new LimitChunkCountPlugin(options.optimize));
|
284
|
-
}
|
285
|
-
|
286
|
-
if(options.optimize.minimize) {
|
287
|
-
compiler.apply(new MovedToPluginWarningPlugin("optimize.minimize", "optimize.UglifyJsPlugin"));
|
288
|
-
var UglifyJsPlugin = require("./optimize/UglifyJsPlugin");
|
289
|
-
if(options.optimize.minimize === true)
|
290
|
-
compiler.apply(new UglifyJsPlugin());
|
291
|
-
else
|
292
|
-
compiler.apply(new UglifyJsPlugin(options.optimize.minimize));
|
293
|
-
}
|
294
|
-
|
295
|
-
if(options.cache === undefined ? options.watch : options.cache) {
|
296
|
-
var CachePlugin = require("./CachePlugin");
|
297
|
-
compiler.apply(new CachePlugin(typeof options.cache === "object" ? options.cache : null));
|
298
|
-
}
|
299
|
-
|
300
|
-
if(typeof options.provide === "object") {
|
301
|
-
compiler.apply(new MovedToPluginWarningPlugin("provide", "ProvidePlugin"));
|
302
|
-
var ProvidePlugin = require("./ProvidePlugin");
|
303
|
-
compiler.apply(new ProvidePlugin(options.provide));
|
304
|
-
}
|
305
|
-
|
306
|
-
if(options.define) {
|
307
|
-
compiler.apply(new MovedToPluginWarningPlugin("define", "DefinePlugin"));
|
308
|
-
var defineObject = {};
|
309
|
-
if(typeof options.define === "object") {
|
310
|
-
Object.keys(options.define).forEach(function(key) {
|
311
|
-
defineObject[key] = options.define[key];
|
312
|
-
});
|
313
|
-
}
|
314
|
-
compiler.apply(new DefinePlugin(defineObject));
|
315
|
-
}
|
316
|
-
if(options.defineDebug !== false)
|
317
|
-
compiler.apply(new DefinePlugin({
|
318
|
-
DEBUG: !!options.debug
|
319
|
-
}));
|
320
|
-
|
321
|
-
compiler.applyPlugins("after-plugins", compiler);
|
322
|
-
compiler.resolvers.normal.apply(
|
323
|
-
new UnsafeCachePlugin(options.resolve.unsafeCache),
|
324
|
-
options.resolve.packageAlias ? new DirectoryDescriptionFileFieldAliasPlugin("package.json", options.resolve.packageAlias) : function() {},
|
325
|
-
new ModuleAliasPlugin(options.resolve.alias),
|
326
|
-
makeRootPlugin("module", options.resolve.root),
|
327
|
-
new ModulesInDirectoriesPlugin("module", options.resolve.modulesDirectories),
|
328
|
-
makeRootPlugin("module", options.resolve.fallback),
|
329
|
-
new ModuleAsFilePlugin("module"),
|
330
|
-
new ModuleAsDirectoryPlugin("module"),
|
331
|
-
new DirectoryDescriptionFilePlugin("package.json", options.resolve.packageMains),
|
332
|
-
new DirectoryDefaultFilePlugin(["index"]),
|
333
|
-
new FileAppendPlugin(options.resolve.extensions),
|
334
|
-
new ResultSymlinkPlugin()
|
335
|
-
);
|
336
|
-
compiler.resolvers.context.apply(
|
337
|
-
new UnsafeCachePlugin(options.resolve.unsafeCache),
|
338
|
-
new ModuleAliasPlugin(options.resolve.alias),
|
339
|
-
makeRootPlugin("module", options.resolve.root),
|
340
|
-
new ModulesInDirectoriesPlugin("module", options.resolve.modulesDirectories),
|
341
|
-
makeRootPlugin("module", options.resolve.fallback),
|
342
|
-
new ModuleAsFilePlugin("module"),
|
343
|
-
new ModuleAsDirectoryPlugin("module"),
|
344
|
-
new DirectoryResultPlugin(),
|
345
|
-
new ResultSymlinkPlugin()
|
346
|
-
);
|
347
|
-
compiler.resolvers.loader.apply(
|
348
|
-
new UnsafeCachePlugin(options.resolve.unsafeCache),
|
349
|
-
new ModuleAliasPlugin(options.resolveLoader.alias),
|
350
|
-
makeRootPlugin("loader-module", options.resolveLoader.root),
|
351
|
-
new ModulesInDirectoriesPlugin("loader-module", options.resolveLoader.modulesDirectories),
|
352
|
-
makeRootPlugin("loader-module", options.resolveLoader.fallback),
|
353
|
-
new ModuleTemplatesPlugin("loader-module", options.resolveLoader.moduleTemplates, "module"),
|
354
|
-
new ModuleAsFilePlugin("module"),
|
355
|
-
new ModuleAsDirectoryPlugin("module"),
|
356
|
-
new DirectoryDescriptionFilePlugin("package.json", options.resolveLoader.packageMains),
|
357
|
-
new DirectoryDefaultFilePlugin(["index"]),
|
358
|
-
new FileAppendPlugin(options.resolveLoader.extensions),
|
359
|
-
new ResultSymlinkPlugin()
|
360
|
-
);
|
361
|
-
compiler.applyPlugins("after-resolvers", compiler);
|
362
|
-
return options;
|
363
|
-
};
|
364
|
-
|
365
|
-
function makeRootPlugin(name, root) {
|
366
|
-
if(typeof root === "string")
|
367
|
-
return new ModulesInRootPlugin(name, root);
|
368
|
-
else if(Array.isArray(root)) {
|
369
|
-
return function() {
|
370
|
-
root.forEach(function(root) {
|
371
|
-
this.apply(new ModulesInRootPlugin(name, root));
|
372
|
-
}, this);
|
373
|
-
};
|
374
|
-
}
|
375
|
-
return function() {};
|
376
|
-
}
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
var OptionsApply = require("./OptionsApply");
|
6
|
+
|
7
|
+
var LoaderTargetPlugin = require("./LoaderTargetPlugin");
|
8
|
+
var FunctionModulePlugin = require("./FunctionModulePlugin");
|
9
|
+
var EvalDevToolModulePlugin = require("./EvalDevToolModulePlugin");
|
10
|
+
var SourceMapDevToolPlugin = require("./SourceMapDevToolPlugin");
|
11
|
+
var EvalSourceMapDevToolPlugin = require("./EvalSourceMapDevToolPlugin");
|
12
|
+
|
13
|
+
var EntryOptionPlugin = require("./EntryOptionPlugin");
|
14
|
+
var RecordIdsPlugin = require("./RecordIdsPlugin");
|
15
|
+
|
16
|
+
var APIPlugin = require("./APIPlugin");
|
17
|
+
var ConstPlugin = require("./ConstPlugin");
|
18
|
+
var RequireJsStuffPlugin = require("./RequireJsStuffPlugin");
|
19
|
+
var NodeStuffPlugin = require("./NodeStuffPlugin");
|
20
|
+
var CompatibilityPlugin = require("./CompatibilityPlugin");
|
21
|
+
var DefinePlugin = require("./DefinePlugin");
|
22
|
+
|
23
|
+
var MovedToPluginWarningPlugin = require("./MovedToPluginWarningPlugin");
|
24
|
+
var TemplatedPathPlugin = require("./TemplatedPathPlugin");
|
25
|
+
var WarnCaseSensitiveModulesPlugin = require("./WarnCaseSensitiveModulesPlugin");
|
26
|
+
|
27
|
+
var LoaderPlugin = require("./dependencies/LoaderPlugin");
|
28
|
+
var CommonJsPlugin = require("./dependencies/CommonJsPlugin");
|
29
|
+
var AMDPlugin = require("./dependencies/AMDPlugin");
|
30
|
+
var RequireContextPlugin = require("./dependencies/RequireContextPlugin");
|
31
|
+
var RequireEnsurePlugin = require("./dependencies/RequireEnsurePlugin");
|
32
|
+
var RequireIncludePlugin = require("./dependencies/RequireIncludePlugin");
|
33
|
+
|
34
|
+
var RemoveParentModulesPlugin = require("./optimize/RemoveParentModulesPlugin");
|
35
|
+
var RemoveEmptyChunksPlugin = require("./optimize/RemoveEmptyChunksPlugin");
|
36
|
+
var MergeDuplicateChunksPlugin = require("./optimize/MergeDuplicateChunksPlugin");
|
37
|
+
var FlagIncludedChunksPlugin = require("./optimize/FlagIncludedChunksPlugin");
|
38
|
+
|
39
|
+
var UnsafeCachePlugin = require("enhanced-resolve/lib/UnsafeCachePlugin");
|
40
|
+
var ModulesInDirectoriesPlugin = require("enhanced-resolve/lib/ModulesInDirectoriesPlugin");
|
41
|
+
var ModulesInRootPlugin = require("enhanced-resolve/lib/ModulesInRootPlugin");
|
42
|
+
var ModuleTemplatesPlugin = require("enhanced-resolve/lib/ModuleTemplatesPlugin");
|
43
|
+
var ModuleAsFilePlugin = require("enhanced-resolve/lib/ModuleAsFilePlugin");
|
44
|
+
var ModuleAsDirectoryPlugin = require("enhanced-resolve/lib/ModuleAsDirectoryPlugin");
|
45
|
+
var ModuleAliasPlugin = require("enhanced-resolve/lib/ModuleAliasPlugin");
|
46
|
+
var DirectoryDefaultFilePlugin = require("enhanced-resolve/lib/DirectoryDefaultFilePlugin");
|
47
|
+
var DirectoryDescriptionFilePlugin = require("enhanced-resolve/lib/DirectoryDescriptionFilePlugin");
|
48
|
+
var DirectoryDescriptionFileFieldAliasPlugin = require("enhanced-resolve/lib/DirectoryDescriptionFileFieldAliasPlugin");
|
49
|
+
var FileAppendPlugin = require("enhanced-resolve/lib/FileAppendPlugin");
|
50
|
+
var DirectoryResultPlugin = require("enhanced-resolve/lib/DirectoryResultPlugin");
|
51
|
+
var ResultSymlinkPlugin = require("enhanced-resolve/lib/ResultSymlinkPlugin");
|
52
|
+
|
53
|
+
function WebpackOptionsApply() {
|
54
|
+
OptionsApply.call(this);
|
55
|
+
}
|
56
|
+
module.exports = WebpackOptionsApply;
|
57
|
+
|
58
|
+
WebpackOptionsApply.prototype = Object.create(OptionsApply.prototype);
|
59
|
+
WebpackOptionsApply.prototype.process = function(options, compiler) {
|
60
|
+
compiler.context = options.context;
|
61
|
+
if(options.plugins && Array.isArray(options.plugins)) {
|
62
|
+
compiler.apply.apply(compiler, options.plugins);
|
63
|
+
}
|
64
|
+
compiler.outputPath = options.output.path;
|
65
|
+
compiler.recordsInputPath = options.recordsInputPath || options.recordsPath;
|
66
|
+
compiler.recordsOutputPath = options.recordsOutputPath || options.recordsPath;
|
67
|
+
compiler.name = options.name;
|
68
|
+
if(typeof options.target === "string") {
|
69
|
+
switch(options.target) {
|
70
|
+
case "web":
|
71
|
+
var JsonpTemplatePlugin = require("./JsonpTemplatePlugin");
|
72
|
+
var NodeSourcePlugin = require("./node/NodeSourcePlugin");
|
73
|
+
compiler.apply(
|
74
|
+
new JsonpTemplatePlugin(options.output),
|
75
|
+
new FunctionModulePlugin(options.output),
|
76
|
+
new NodeSourcePlugin(options.node),
|
77
|
+
new LoaderTargetPlugin("web")
|
78
|
+
);
|
79
|
+
break;
|
80
|
+
case "webworker":
|
81
|
+
var WebWorkerTemplatePlugin = require("./webworker/WebWorkerTemplatePlugin");
|
82
|
+
var NodeSourcePlugin = require("./node/NodeSourcePlugin");
|
83
|
+
compiler.apply(
|
84
|
+
new WebWorkerTemplatePlugin(options.output),
|
85
|
+
new FunctionModulePlugin(options.output),
|
86
|
+
new NodeSourcePlugin(options.node),
|
87
|
+
new LoaderTargetPlugin("webworker")
|
88
|
+
);
|
89
|
+
break;
|
90
|
+
case "node":
|
91
|
+
case "async-node":
|
92
|
+
var NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
|
93
|
+
var NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
94
|
+
compiler.apply(
|
95
|
+
new NodeTemplatePlugin(options.output, options.target === "async-node"),
|
96
|
+
new FunctionModulePlugin(options.output),
|
97
|
+
new NodeTargetPlugin(),
|
98
|
+
new LoaderTargetPlugin("node")
|
99
|
+
);
|
100
|
+
break;
|
101
|
+
case "node-webkit":
|
102
|
+
var JsonpTemplatePlugin = require("./JsonpTemplatePlugin");
|
103
|
+
var NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
104
|
+
var ExternalsPlugin = require("./ExternalsPlugin");
|
105
|
+
compiler.apply(
|
106
|
+
new JsonpTemplatePlugin(options.output),
|
107
|
+
new FunctionModulePlugin(options.output),
|
108
|
+
new NodeTargetPlugin(),
|
109
|
+
new ExternalsPlugin("commonjs", "nw.gui"),
|
110
|
+
new LoaderTargetPlugin("node-webkit")
|
111
|
+
);
|
112
|
+
break;
|
113
|
+
case "atom":
|
114
|
+
case "electron":
|
115
|
+
case "electron-main":
|
116
|
+
var NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
|
117
|
+
var NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
118
|
+
var ExternalsPlugin = require("./ExternalsPlugin");
|
119
|
+
compiler.apply(
|
120
|
+
new NodeTemplatePlugin(options.output, true),
|
121
|
+
new FunctionModulePlugin(options.output),
|
122
|
+
new NodeTargetPlugin(),
|
123
|
+
new ExternalsPlugin("commonjs", [
|
124
|
+
"app",
|
125
|
+
"auto-updater",
|
126
|
+
"browser-window",
|
127
|
+
"content-tracing",
|
128
|
+
"dialog",
|
129
|
+
"electron",
|
130
|
+
"global-shortcut",
|
131
|
+
"ipc",
|
132
|
+
"ipc-main",
|
133
|
+
"menu",
|
134
|
+
"menu-item",
|
135
|
+
"power-monitor",
|
136
|
+
"power-save-blocker",
|
137
|
+
"protocol",
|
138
|
+
"session",
|
139
|
+
"web-contents",
|
140
|
+
"tray",
|
141
|
+
"clipboard",
|
142
|
+
"crash-reporter",
|
143
|
+
"native-image",
|
144
|
+
"screen",
|
145
|
+
"shell"
|
146
|
+
]),
|
147
|
+
new LoaderTargetPlugin(options.target)
|
148
|
+
);
|
149
|
+
break;
|
150
|
+
case "electron-renderer":
|
151
|
+
var JsonpTemplatePlugin = require("./JsonpTemplatePlugin");
|
152
|
+
var NodeTargetPlugin = require("./node/NodeTargetPlugin");
|
153
|
+
var ExternalsPlugin = require("./ExternalsPlugin");
|
154
|
+
compiler.apply(
|
155
|
+
new JsonpTemplatePlugin(options.output),
|
156
|
+
new FunctionModulePlugin(options.output),
|
157
|
+
new NodeTargetPlugin(),
|
158
|
+
new ExternalsPlugin("commonjs", [
|
159
|
+
"desktop-capturer",
|
160
|
+
"electron",
|
161
|
+
"ipc",
|
162
|
+
"ipc-renderer",
|
163
|
+
"remote",
|
164
|
+
"web-frame",
|
165
|
+
"clipboard",
|
166
|
+
"crash-reporter",
|
167
|
+
"native-image",
|
168
|
+
"screen",
|
169
|
+
"shell"
|
170
|
+
]),
|
171
|
+
new LoaderTargetPlugin(options.target)
|
172
|
+
);
|
173
|
+
break;
|
174
|
+
default:
|
175
|
+
throw new Error("Unsupported target '" + options.target + "'.");
|
176
|
+
}
|
177
|
+
} else if(options.target !== false) {
|
178
|
+
options.target(compiler);
|
179
|
+
} else {
|
180
|
+
throw new Error("Unsupported target '" + options.target + "'.");
|
181
|
+
}
|
182
|
+
if(options.output.library || options.output.libraryTarget !== "var") {
|
183
|
+
var LibraryTemplatePlugin = require("./LibraryTemplatePlugin");
|
184
|
+
compiler.apply(new LibraryTemplatePlugin(options.output.library, options.output.libraryTarget, options.output.umdNamedDefine));
|
185
|
+
}
|
186
|
+
if(options.externals) {
|
187
|
+
var ExternalsPlugin = require("./ExternalsPlugin");
|
188
|
+
compiler.apply(new ExternalsPlugin(options.output.libraryTarget, options.externals));
|
189
|
+
}
|
190
|
+
|
191
|
+
if(options.hot) {
|
192
|
+
compiler.apply(new MovedToPluginWarningPlugin("hot", "HotModuleReplacementPlugin"));
|
193
|
+
var HotModuleReplacementPlugin = require("./HotModuleReplacementPlugin");
|
194
|
+
compiler.apply(new HotModuleReplacementPlugin(options.output));
|
195
|
+
}
|
196
|
+
|
197
|
+
if(options.devtool && (options.devtool.indexOf("sourcemap") >= 0 || options.devtool.indexOf("source-map") >= 0)) {
|
198
|
+
var hidden = options.devtool.indexOf("hidden") >= 0;
|
199
|
+
var inline = options.devtool.indexOf("inline") >= 0;
|
200
|
+
var evalWrapped = options.devtool.indexOf("eval") >= 0;
|
201
|
+
var cheap = options.devtool.indexOf("cheap") >= 0;
|
202
|
+
var moduleMaps = options.devtool.indexOf("module") >= 0;
|
203
|
+
var noSources = options.devtool.indexOf("nosources") >= 0;
|
204
|
+
var legacy = options.devtool.indexOf("@") >= 0;
|
205
|
+
var modern = options.devtool.indexOf("#") >= 0;
|
206
|
+
var comment = legacy && modern ? "\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/" :
|
207
|
+
legacy ? "\n/*\n//@ sourceMappingURL=[url]\n*/" :
|
208
|
+
modern ? "\n//# sourceMappingURL=[url]" :
|
209
|
+
null;
|
210
|
+
var Plugin = evalWrapped ? EvalSourceMapDevToolPlugin : SourceMapDevToolPlugin;
|
211
|
+
compiler.apply(new Plugin({
|
212
|
+
filename: inline ? null : options.output.sourceMapFilename,
|
213
|
+
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
|
214
|
+
fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate,
|
215
|
+
append: hidden ? false : comment,
|
216
|
+
module: moduleMaps ? true : cheap ? false : true,
|
217
|
+
columns: cheap ? false : true,
|
218
|
+
lineToLine: options.output.devtoolLineToLine,
|
219
|
+
noSources: noSources,
|
220
|
+
}));
|
221
|
+
} else if(options.devtool && options.devtool.indexOf("eval") >= 0) {
|
222
|
+
var legacy = options.devtool.indexOf("@") >= 0;
|
223
|
+
var modern = options.devtool.indexOf("#") >= 0;
|
224
|
+
var comment = legacy && modern ? "//@ sourceURL=[url]\n//# sourceURL=[url]" :
|
225
|
+
legacy ? "//@ sourceURL=[url]" :
|
226
|
+
modern ? "//# sourceURL=[url]" :
|
227
|
+
null;
|
228
|
+
compiler.apply(new EvalDevToolModulePlugin(comment, options.output.devtoolModuleFilenameTemplate));
|
229
|
+
}
|
230
|
+
|
231
|
+
compiler.apply(new EntryOptionPlugin());
|
232
|
+
compiler.applyPluginsBailResult("entry-option", options.context, options.entry);
|
233
|
+
|
234
|
+
if(options.prefetch) {
|
235
|
+
compiler.apply(new MovedToPluginWarningPlugin("prefetch", "PrefetchPlugin"));
|
236
|
+
var PrefetchPlugin = require("./PrefetchPlugin");
|
237
|
+
options.prefetch.map(function(request) {
|
238
|
+
compiler.apply(new PrefetchPlugin(options.context, request));
|
239
|
+
});
|
240
|
+
}
|
241
|
+
compiler.apply(
|
242
|
+
new CompatibilityPlugin(),
|
243
|
+
new LoaderPlugin(),
|
244
|
+
new NodeStuffPlugin(options.node),
|
245
|
+
new RequireJsStuffPlugin(),
|
246
|
+
new APIPlugin(),
|
247
|
+
new ConstPlugin(),
|
248
|
+
new RequireIncludePlugin(),
|
249
|
+
new RequireEnsurePlugin(),
|
250
|
+
new RequireContextPlugin(options.resolve.modulesDirectories, options.resolve.extensions),
|
251
|
+
new AMDPlugin(options.module, options.amd || {}),
|
252
|
+
new CommonJsPlugin(options.module)
|
253
|
+
);
|
254
|
+
|
255
|
+
compiler.apply(
|
256
|
+
new RemoveParentModulesPlugin(),
|
257
|
+
new RemoveEmptyChunksPlugin(),
|
258
|
+
new MergeDuplicateChunksPlugin(),
|
259
|
+
new FlagIncludedChunksPlugin()
|
260
|
+
);
|
261
|
+
|
262
|
+
compiler.apply(new TemplatedPathPlugin());
|
263
|
+
|
264
|
+
compiler.apply(new RecordIdsPlugin());
|
265
|
+
|
266
|
+
compiler.apply(new WarnCaseSensitiveModulesPlugin());
|
267
|
+
|
268
|
+
if(options.optimize && options.optimize.occurenceOrder) {
|
269
|
+
compiler.apply(new MovedToPluginWarningPlugin("optimize.occurenceOrder", "optimize.OccurrenceOrderPlugin"));
|
270
|
+
var OccurrenceOrderPlugin = require("./optimize/OccurrenceOrderPlugin");
|
271
|
+
compiler.apply(new OccurrenceOrderPlugin(options.optimize.occurenceOrderPreferEntry));
|
272
|
+
}
|
273
|
+
|
274
|
+
if(options.optimize && options.optimize.minChunkSize) {
|
275
|
+
compiler.apply(new MovedToPluginWarningPlugin("optimize.minChunkSize", "optimize.MinChunkSizePlugin"));
|
276
|
+
var MinChunkSizePlugin = require("./optimize/MinChunkSizePlugin");
|
277
|
+
compiler.apply(new MinChunkSizePlugin(options.optimize));
|
278
|
+
}
|
279
|
+
|
280
|
+
if(options.optimize && options.optimize.maxChunks) {
|
281
|
+
compiler.apply(new MovedToPluginWarningPlugin("optimize.maxChunks", "optimize.LimitChunkCountPlugin"));
|
282
|
+
var LimitChunkCountPlugin = require("./optimize/LimitChunkCountPlugin");
|
283
|
+
compiler.apply(new LimitChunkCountPlugin(options.optimize));
|
284
|
+
}
|
285
|
+
|
286
|
+
if(options.optimize.minimize) {
|
287
|
+
compiler.apply(new MovedToPluginWarningPlugin("optimize.minimize", "optimize.UglifyJsPlugin"));
|
288
|
+
var UglifyJsPlugin = require("./optimize/UglifyJsPlugin");
|
289
|
+
if(options.optimize.minimize === true)
|
290
|
+
compiler.apply(new UglifyJsPlugin());
|
291
|
+
else
|
292
|
+
compiler.apply(new UglifyJsPlugin(options.optimize.minimize));
|
293
|
+
}
|
294
|
+
|
295
|
+
if(options.cache === undefined ? options.watch : options.cache) {
|
296
|
+
var CachePlugin = require("./CachePlugin");
|
297
|
+
compiler.apply(new CachePlugin(typeof options.cache === "object" ? options.cache : null));
|
298
|
+
}
|
299
|
+
|
300
|
+
if(typeof options.provide === "object") {
|
301
|
+
compiler.apply(new MovedToPluginWarningPlugin("provide", "ProvidePlugin"));
|
302
|
+
var ProvidePlugin = require("./ProvidePlugin");
|
303
|
+
compiler.apply(new ProvidePlugin(options.provide));
|
304
|
+
}
|
305
|
+
|
306
|
+
if(options.define) {
|
307
|
+
compiler.apply(new MovedToPluginWarningPlugin("define", "DefinePlugin"));
|
308
|
+
var defineObject = {};
|
309
|
+
if(typeof options.define === "object") {
|
310
|
+
Object.keys(options.define).forEach(function(key) {
|
311
|
+
defineObject[key] = options.define[key];
|
312
|
+
});
|
313
|
+
}
|
314
|
+
compiler.apply(new DefinePlugin(defineObject));
|
315
|
+
}
|
316
|
+
if(options.defineDebug !== false)
|
317
|
+
compiler.apply(new DefinePlugin({
|
318
|
+
DEBUG: !!options.debug
|
319
|
+
}));
|
320
|
+
|
321
|
+
compiler.applyPlugins("after-plugins", compiler);
|
322
|
+
compiler.resolvers.normal.apply(
|
323
|
+
new UnsafeCachePlugin(options.resolve.unsafeCache),
|
324
|
+
options.resolve.packageAlias ? new DirectoryDescriptionFileFieldAliasPlugin("package.json", options.resolve.packageAlias) : function() {},
|
325
|
+
new ModuleAliasPlugin(options.resolve.alias),
|
326
|
+
makeRootPlugin("module", options.resolve.root),
|
327
|
+
new ModulesInDirectoriesPlugin("module", options.resolve.modulesDirectories),
|
328
|
+
makeRootPlugin("module", options.resolve.fallback),
|
329
|
+
new ModuleAsFilePlugin("module"),
|
330
|
+
new ModuleAsDirectoryPlugin("module"),
|
331
|
+
new DirectoryDescriptionFilePlugin("package.json", options.resolve.packageMains),
|
332
|
+
new DirectoryDefaultFilePlugin(["index"]),
|
333
|
+
new FileAppendPlugin(options.resolve.extensions),
|
334
|
+
new ResultSymlinkPlugin()
|
335
|
+
);
|
336
|
+
compiler.resolvers.context.apply(
|
337
|
+
new UnsafeCachePlugin(options.resolve.unsafeCache),
|
338
|
+
new ModuleAliasPlugin(options.resolve.alias),
|
339
|
+
makeRootPlugin("module", options.resolve.root),
|
340
|
+
new ModulesInDirectoriesPlugin("module", options.resolve.modulesDirectories),
|
341
|
+
makeRootPlugin("module", options.resolve.fallback),
|
342
|
+
new ModuleAsFilePlugin("module"),
|
343
|
+
new ModuleAsDirectoryPlugin("module"),
|
344
|
+
new DirectoryResultPlugin(),
|
345
|
+
new ResultSymlinkPlugin()
|
346
|
+
);
|
347
|
+
compiler.resolvers.loader.apply(
|
348
|
+
new UnsafeCachePlugin(options.resolve.unsafeCache),
|
349
|
+
new ModuleAliasPlugin(options.resolveLoader.alias),
|
350
|
+
makeRootPlugin("loader-module", options.resolveLoader.root),
|
351
|
+
new ModulesInDirectoriesPlugin("loader-module", options.resolveLoader.modulesDirectories),
|
352
|
+
makeRootPlugin("loader-module", options.resolveLoader.fallback),
|
353
|
+
new ModuleTemplatesPlugin("loader-module", options.resolveLoader.moduleTemplates, "module"),
|
354
|
+
new ModuleAsFilePlugin("module"),
|
355
|
+
new ModuleAsDirectoryPlugin("module"),
|
356
|
+
new DirectoryDescriptionFilePlugin("package.json", options.resolveLoader.packageMains),
|
357
|
+
new DirectoryDefaultFilePlugin(["index"]),
|
358
|
+
new FileAppendPlugin(options.resolveLoader.extensions),
|
359
|
+
new ResultSymlinkPlugin()
|
360
|
+
);
|
361
|
+
compiler.applyPlugins("after-resolvers", compiler);
|
362
|
+
return options;
|
363
|
+
};
|
364
|
+
|
365
|
+
function makeRootPlugin(name, root) {
|
366
|
+
if(typeof root === "string")
|
367
|
+
return new ModulesInRootPlugin(name, root);
|
368
|
+
else if(Array.isArray(root)) {
|
369
|
+
return function() {
|
370
|
+
root.forEach(function(root) {
|
371
|
+
this.apply(new ModulesInRootPlugin(name, root));
|
372
|
+
}, this);
|
373
|
+
};
|
374
|
+
}
|
375
|
+
return function() {};
|
376
|
+
}
|