webpack 3.8.0 → 3.8.1

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.
Files changed (198) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +716 -716
  3. package/buildin/.eslintrc +7 -7
  4. package/buildin/amd-define.js +3 -3
  5. package/buildin/amd-options.js +2 -2
  6. package/buildin/global.js +21 -21
  7. package/buildin/harmony-module.js +24 -24
  8. package/buildin/module.js +22 -22
  9. package/buildin/system.js +7 -7
  10. package/hot/.eslintrc +9 -9
  11. package/hot/dev-server.js +53 -53
  12. package/hot/emitter.js +2 -2
  13. package/hot/log-apply-result.js +38 -38
  14. package/hot/log.js +44 -44
  15. package/hot/only-dev-server.js +71 -71
  16. package/hot/poll.js +34 -34
  17. package/hot/signal.js +51 -51
  18. package/lib/APIPlugin.js +45 -45
  19. package/lib/AsyncDependenciesBlock.js +43 -43
  20. package/lib/AutomaticPrefetchPlugin.js +36 -36
  21. package/lib/BasicEvaluatedExpression.js +203 -203
  22. package/lib/CaseSensitiveModulesWarning.js +49 -49
  23. package/lib/ChunkRenderError.js +24 -24
  24. package/lib/ChunkTemplate.js +36 -36
  25. package/lib/CompatibilityPlugin.js +57 -57
  26. package/lib/Compiler.js +523 -523
  27. package/lib/ConstPlugin.js +60 -60
  28. package/lib/ContextModule.js +431 -431
  29. package/lib/ContextReplacementPlugin.js +111 -111
  30. package/lib/DefinePlugin.js +123 -123
  31. package/lib/DelegatedModule.js +98 -98
  32. package/lib/DelegatedModuleFactoryPlugin.js +59 -59
  33. package/lib/DelegatedPlugin.js +30 -30
  34. package/lib/DependenciesBlockVariable.js +51 -51
  35. package/lib/DllEntryPlugin.js +37 -37
  36. package/lib/DllModule.js +58 -58
  37. package/lib/DllModuleFactory.js +20 -20
  38. package/lib/DllPlugin.js +38 -38
  39. package/lib/DllReferencePlugin.js +62 -62
  40. package/lib/DynamicEntryPlugin.js +59 -59
  41. package/lib/EntryModuleNotFoundError.js +22 -22
  42. package/lib/EntryOptionPlugin.js +31 -31
  43. package/lib/EnvironmentPlugin.js +50 -50
  44. package/lib/ErrorHelpers.js +31 -31
  45. package/lib/EvalDevToolModulePlugin.js +22 -22
  46. package/lib/EvalDevToolModuleTemplatePlugin.js +33 -33
  47. package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +75 -75
  48. package/lib/EvalSourceMapDevToolPlugin.js +32 -32
  49. package/lib/ExportPropertyMainTemplatePlugin.js +31 -31
  50. package/lib/ExtendedAPIPlugin.js +47 -47
  51. package/lib/ExternalModuleFactoryPlugin.js +91 -91
  52. package/lib/ExternalsPlugin.js +21 -21
  53. package/lib/FlagDependencyExportsPlugin.js +101 -101
  54. package/lib/FunctionModulePlugin.js +24 -24
  55. package/lib/HashedModuleIdsPlugin.js +42 -42
  56. package/lib/HotUpdateChunkTemplate.js +31 -31
  57. package/lib/IgnorePlugin.js +69 -69
  58. package/lib/JsonpExportMainTemplatePlugin.js +37 -37
  59. package/lib/JsonpHotUpdateChunkTemplatePlugin.js +27 -27
  60. package/lib/JsonpTemplatePlugin.js +21 -21
  61. package/lib/LibManifestPlugin.js +63 -63
  62. package/lib/LibraryTemplatePlugin.js +92 -92
  63. package/lib/LoaderOptionsPlugin.js +36 -36
  64. package/lib/LoaderTargetPlugin.js +19 -19
  65. package/lib/MemoryOutputFileSystem.js +5 -5
  66. package/lib/ModuleBuildError.js +42 -42
  67. package/lib/ModuleDependencyError.js +22 -22
  68. package/lib/ModuleDependencyWarning.js +22 -22
  69. package/lib/ModuleError.js +24 -24
  70. package/lib/ModuleFilenameHelpers.js +162 -162
  71. package/lib/ModuleNotFoundError.js +26 -26
  72. package/lib/ModuleReason.js +50 -50
  73. package/lib/ModuleTemplate.js +23 -23
  74. package/lib/ModuleWarning.js +24 -24
  75. package/lib/MovedToPluginWarningPlugin.js +21 -21
  76. package/lib/MultiCompiler.js +164 -164
  77. package/lib/MultiEntryPlugin.js +39 -39
  78. package/lib/MultiModuleFactory.js +19 -19
  79. package/lib/MultiStats.js +79 -79
  80. package/lib/MultiWatching.js +32 -32
  81. package/lib/NamedChunksPlugin.js +30 -30
  82. package/lib/NamedModulesPlugin.js +27 -27
  83. package/lib/NewWatchingPlugin.js +15 -15
  84. package/lib/NoEmitOnErrorsPlugin.js +22 -22
  85. package/lib/NoErrorsPlugin.js +29 -29
  86. package/lib/NodeStuffPlugin.js +97 -97
  87. package/lib/NormalModuleReplacementPlugin.js +45 -45
  88. package/lib/NullFactory.js +12 -12
  89. package/lib/OptionsApply.js +10 -10
  90. package/lib/ParserHelpers.js +85 -85
  91. package/lib/PrefetchPlugin.js +31 -31
  92. package/lib/ProgressPlugin.js +192 -192
  93. package/lib/ProvidePlugin.js +55 -55
  94. package/lib/RawModule.js +54 -54
  95. package/lib/RequestShortener.js +63 -63
  96. package/lib/RequireJsStuffPlugin.js +31 -31
  97. package/lib/RuleSet.js +444 -444
  98. package/lib/SetVarMainTemplatePlugin.js +41 -41
  99. package/lib/SingleEntryPlugin.js +35 -35
  100. package/lib/SizeFormatHelpers.js +18 -18
  101. package/lib/SourceMapDevToolModuleOptionsPlugin.js +37 -37
  102. package/lib/UnsupportedFeatureWarning.js +21 -21
  103. package/lib/UseStrictPlugin.js +34 -34
  104. package/lib/WarnCaseSensitiveModulesPlugin.js +31 -31
  105. package/lib/WatchIgnorePlugin.js +49 -49
  106. package/lib/WebpackError.js +11 -11
  107. package/lib/WebpackOptionsDefaulter.js +129 -129
  108. package/lib/WebpackOptionsValidationError.js +196 -196
  109. package/lib/compareLocations.js +36 -36
  110. package/lib/dependencies/AMDDefineDependency.js +142 -142
  111. package/lib/dependencies/AMDPlugin.js +119 -119
  112. package/lib/dependencies/AMDRequireDependenciesBlock.js +33 -33
  113. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +177 -177
  114. package/lib/dependencies/AMDRequireDependency.js +67 -67
  115. package/lib/dependencies/AMDRequireItemDependency.js +22 -22
  116. package/lib/dependencies/CommonJsRequireDependency.js +22 -22
  117. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +89 -89
  118. package/lib/dependencies/ConstDependency.js +32 -32
  119. package/lib/dependencies/ContextDependencyHelpers.js +71 -71
  120. package/lib/dependencies/ContextElementDependency.js +21 -21
  121. package/lib/dependencies/CriticalDependencyWarning.js +20 -20
  122. package/lib/dependencies/DelegatedExportsDependency.js +33 -33
  123. package/lib/dependencies/DelegatedSourceDependency.js +18 -18
  124. package/lib/dependencies/DllEntryDependency.js +20 -20
  125. package/lib/dependencies/HarmonyCompatibilityDependency.js +30 -30
  126. package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
  127. package/lib/dependencies/ImportDependenciesBlock.js +17 -17
  128. package/lib/dependencies/ImportEagerContextDependency.js +22 -22
  129. package/lib/dependencies/ImportLazyContextDependency.js +22 -22
  130. package/lib/dependencies/ImportLazyOnceContextDependency.js +22 -22
  131. package/lib/dependencies/ImportParserPlugin.js +89 -89
  132. package/lib/dependencies/ImportPlugin.js +60 -60
  133. package/lib/dependencies/ImportWeakContextDependency.js +22 -22
  134. package/lib/dependencies/LoaderDependency.js +18 -18
  135. package/lib/dependencies/LoaderPlugin.js +60 -60
  136. package/lib/dependencies/LocalModule.js +23 -23
  137. package/lib/dependencies/LocalModuleDependency.js +24 -24
  138. package/lib/dependencies/LocalModulesHelpers.js +46 -46
  139. package/lib/dependencies/ModuleDependency.js +23 -23
  140. package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
  141. package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
  142. package/lib/dependencies/MultiEntryDependency.js +20 -20
  143. package/lib/dependencies/NullDependency.js +24 -24
  144. package/lib/dependencies/PrefetchDependency.js +18 -18
  145. package/lib/dependencies/RequireContextDependency.js +26 -26
  146. package/lib/dependencies/RequireContextDependencyParserPlugin.js +50 -50
  147. package/lib/dependencies/RequireContextPlugin.js +96 -96
  148. package/lib/dependencies/RequireEnsureDependenciesBlock.js +22 -22
  149. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +102 -102
  150. package/lib/dependencies/RequireEnsureDependency.js +38 -38
  151. package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
  152. package/lib/dependencies/RequireEnsurePlugin.js +40 -40
  153. package/lib/dependencies/RequireHeaderDependency.js +26 -26
  154. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +21 -21
  155. package/lib/dependencies/RequireIncludePlugin.js +33 -33
  156. package/lib/dependencies/RequireResolveDependency.js +22 -22
  157. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +71 -71
  158. package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
  159. package/lib/dependencies/SingleEntryDependency.js +18 -18
  160. package/lib/dependencies/SystemPlugin.js +44 -44
  161. package/lib/dependencies/UnsupportedDependency.js +23 -23
  162. package/lib/dependencies/WebpackMissingModule.js +18 -18
  163. package/lib/dependencies/getFunctionExpression.js +44 -44
  164. package/lib/formatLocation.js +54 -54
  165. package/lib/node/NodeChunkTemplatePlugin.js +27 -27
  166. package/lib/node/NodeEnvironmentPlugin.js +25 -25
  167. package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +27 -27
  168. package/lib/node/NodeMainTemplate.runtime.js +24 -24
  169. package/lib/node/NodeMainTemplateAsync.runtime.js +40 -40
  170. package/lib/node/NodeOutputFileSystem.js +22 -22
  171. package/lib/node/NodeSourcePlugin.js +88 -88
  172. package/lib/node/NodeTargetPlugin.js +15 -15
  173. package/lib/node/NodeTemplatePlugin.js +27 -27
  174. package/lib/node/NodeWatchFileSystem.js +72 -72
  175. package/lib/optimize/ChunkModuleIdRangePlugin.js +53 -53
  176. package/lib/optimize/DedupePlugin.js +15 -15
  177. package/lib/optimize/FlagIncludedChunksPlugin.js +35 -35
  178. package/lib/optimize/LimitChunkCountPlugin.js +59 -59
  179. package/lib/optimize/MinChunkSizePlugin.js +65 -65
  180. package/lib/optimize/RemoveEmptyChunksPlugin.js +21 -21
  181. package/lib/optimize/UglifyJsPlugin.js +9 -9
  182. package/lib/performance/AssetsOverSizeLimitWarning.js +23 -23
  183. package/lib/performance/EntrypointsOverSizeLimitWarning.js +28 -28
  184. package/lib/performance/NoAsyncChunksWarning.js +20 -20
  185. package/lib/performance/SizeLimitsPlugin.js +102 -102
  186. package/lib/prepareOptions.js +29 -29
  187. package/lib/removeAndDo.js +15 -15
  188. package/lib/util/Semaphore.js +32 -32
  189. package/lib/util/identifier.js +38 -38
  190. package/lib/validateSchema.js +66 -66
  191. package/lib/web/WebEnvironmentPlugin.js +18 -18
  192. package/lib/webworker/WebWorkerChunkTemplatePlugin.js +29 -29
  193. package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +28 -28
  194. package/lib/webworker/WebWorkerMainTemplate.runtime.js +58 -58
  195. package/lib/webworker/WebWorkerTemplatePlugin.js +20 -20
  196. package/package.json +1 -1
  197. package/schemas/ajv.absolutePath.js +29 -29
  198. package/schemas/webpackOptionsSchema.json +16 -0
@@ -1,21 +1,21 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const JsonpMainTemplatePlugin = require("./JsonpMainTemplatePlugin");
8
- const JsonpChunkTemplatePlugin = require("./JsonpChunkTemplatePlugin");
9
- const JsonpHotUpdateChunkTemplatePlugin = require("./JsonpHotUpdateChunkTemplatePlugin");
10
-
11
- class JsonpTemplatePlugin {
12
- apply(compiler) {
13
- compiler.plugin("this-compilation", (compilation) => {
14
- compilation.mainTemplate.apply(new JsonpMainTemplatePlugin());
15
- compilation.chunkTemplate.apply(new JsonpChunkTemplatePlugin());
16
- compilation.hotUpdateChunkTemplate.apply(new JsonpHotUpdateChunkTemplatePlugin());
17
- });
18
- }
19
- }
20
-
21
- module.exports = JsonpTemplatePlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const JsonpMainTemplatePlugin = require("./JsonpMainTemplatePlugin");
8
+ const JsonpChunkTemplatePlugin = require("./JsonpChunkTemplatePlugin");
9
+ const JsonpHotUpdateChunkTemplatePlugin = require("./JsonpHotUpdateChunkTemplatePlugin");
10
+
11
+ class JsonpTemplatePlugin {
12
+ apply(compiler) {
13
+ compiler.plugin("this-compilation", (compilation) => {
14
+ compilation.mainTemplate.apply(new JsonpMainTemplatePlugin());
15
+ compilation.chunkTemplate.apply(new JsonpChunkTemplatePlugin());
16
+ compilation.hotUpdateChunkTemplate.apply(new JsonpHotUpdateChunkTemplatePlugin());
17
+ });
18
+ }
19
+ }
20
+
21
+ module.exports = JsonpTemplatePlugin;
@@ -1,63 +1,63 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const path = require("path");
8
- const asyncLib = require("async");
9
-
10
- class LibManifestPlugin {
11
- constructor(options) {
12
- this.options = options;
13
- }
14
-
15
- apply(compiler) {
16
- compiler.plugin("emit", (compilation, callback) => {
17
- asyncLib.forEach(compilation.chunks, (chunk, callback) => {
18
- if(!chunk.isInitial()) {
19
- callback();
20
- return;
21
- }
22
- const targetPath = compilation.getPath(this.options.path, {
23
- hash: compilation.hash,
24
- chunk
25
- });
26
- const name = this.options.name && compilation.getPath(this.options.name, {
27
- hash: compilation.hash,
28
- chunk
29
- });
30
- const manifest = {
31
- name,
32
- type: this.options.type,
33
- content: chunk.mapModules(module => {
34
- if(module.libIdent) {
35
- const ident = module.libIdent({
36
- context: this.options.context || compiler.options.context
37
- });
38
- if(ident) {
39
- return {
40
- ident,
41
- data: {
42
- id: module.id,
43
- meta: module.meta,
44
- exports: Array.isArray(module.providedExports) ? module.providedExports : undefined
45
- }
46
- };
47
- }
48
- }
49
- }).filter(Boolean).reduce((obj, item) => {
50
- obj[item.ident] = item.data;
51
- return obj;
52
- }, Object.create(null))
53
- };
54
- const content = new Buffer(JSON.stringify(manifest), "utf8"); //eslint-disable-line
55
- compiler.outputFileSystem.mkdirp(path.dirname(targetPath), err => {
56
- if(err) return callback(err);
57
- compiler.outputFileSystem.writeFile(targetPath, content, callback);
58
- });
59
- }, callback);
60
- });
61
- }
62
- }
63
- module.exports = LibManifestPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const path = require("path");
8
+ const asyncLib = require("async");
9
+
10
+ class LibManifestPlugin {
11
+ constructor(options) {
12
+ this.options = options;
13
+ }
14
+
15
+ apply(compiler) {
16
+ compiler.plugin("emit", (compilation, callback) => {
17
+ asyncLib.forEach(compilation.chunks, (chunk, callback) => {
18
+ if(!chunk.isInitial()) {
19
+ callback();
20
+ return;
21
+ }
22
+ const targetPath = compilation.getPath(this.options.path, {
23
+ hash: compilation.hash,
24
+ chunk
25
+ });
26
+ const name = this.options.name && compilation.getPath(this.options.name, {
27
+ hash: compilation.hash,
28
+ chunk
29
+ });
30
+ const manifest = {
31
+ name,
32
+ type: this.options.type,
33
+ content: chunk.mapModules(module => {
34
+ if(module.libIdent) {
35
+ const ident = module.libIdent({
36
+ context: this.options.context || compiler.options.context
37
+ });
38
+ if(ident) {
39
+ return {
40
+ ident,
41
+ data: {
42
+ id: module.id,
43
+ meta: module.meta,
44
+ exports: Array.isArray(module.providedExports) ? module.providedExports : undefined
45
+ }
46
+ };
47
+ }
48
+ }
49
+ }).filter(Boolean).reduce((obj, item) => {
50
+ obj[item.ident] = item.data;
51
+ return obj;
52
+ }, Object.create(null))
53
+ };
54
+ const content = new Buffer(JSON.stringify(manifest), "utf8"); //eslint-disable-line
55
+ compiler.outputFileSystem.mkdirp(path.dirname(targetPath), err => {
56
+ if(err) return callback(err);
57
+ compiler.outputFileSystem.writeFile(targetPath, content, callback);
58
+ });
59
+ }, callback);
60
+ });
61
+ }
62
+ }
63
+ module.exports = LibManifestPlugin;
@@ -1,92 +1,92 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const SetVarMainTemplatePlugin = require("./SetVarMainTemplatePlugin");
8
-
9
- function accessorToObjectAccess(accessor) {
10
- return accessor.map((a) => {
11
- return `[${JSON.stringify(a)}]`;
12
- }).join("");
13
- }
14
-
15
- function accessorAccess(base, accessor, joinWith) {
16
- accessor = [].concat(accessor);
17
- return accessor.map((a, idx) => {
18
- a = base ?
19
- base + accessorToObjectAccess(accessor.slice(0, idx + 1)) :
20
- accessor[0] + accessorToObjectAccess(accessor.slice(1, idx + 1));
21
- if(idx === accessor.length - 1) return a;
22
- if(idx === 0 && typeof base === "undefined") return `${a} = typeof ${a} === "object" ? ${a} : {}`;
23
- return `${a} = ${a} || {}`;
24
- }).join(joinWith || "; ");
25
- }
26
-
27
- class LibraryTemplatePlugin {
28
-
29
- constructor(name, target, umdNamedDefine, auxiliaryComment, exportProperty) {
30
- this.name = name;
31
- this.target = target;
32
- this.umdNamedDefine = umdNamedDefine;
33
- this.auxiliaryComment = auxiliaryComment;
34
- this.exportProperty = exportProperty;
35
- }
36
-
37
- apply(compiler) {
38
- compiler.plugin("this-compilation", (compilation) => {
39
- if(this.exportProperty) {
40
- var ExportPropertyMainTemplatePlugin = require("./ExportPropertyMainTemplatePlugin");
41
- compilation.apply(new ExportPropertyMainTemplatePlugin(this.exportProperty));
42
- }
43
- switch(this.target) {
44
- case "var":
45
- compilation.apply(new SetVarMainTemplatePlugin(`var ${accessorAccess(false, this.name)}`));
46
- break;
47
- case "assign":
48
- compilation.apply(new SetVarMainTemplatePlugin(accessorAccess(undefined, this.name)));
49
- break;
50
- case "this":
51
- case "window":
52
- case "global":
53
- if(this.name)
54
- compilation.apply(new SetVarMainTemplatePlugin(accessorAccess(this.target, this.name)));
55
- else
56
- compilation.apply(new SetVarMainTemplatePlugin(this.target, true));
57
- break;
58
- case "commonjs":
59
- if(this.name)
60
- compilation.apply(new SetVarMainTemplatePlugin(accessorAccess("exports", this.name)));
61
- else
62
- compilation.apply(new SetVarMainTemplatePlugin("exports", true));
63
- break;
64
- case "commonjs2":
65
- case "commonjs-module":
66
- compilation.apply(new SetVarMainTemplatePlugin("module.exports"));
67
- break;
68
- case "amd":
69
- var AmdMainTemplatePlugin = require("./AmdMainTemplatePlugin");
70
- compilation.apply(new AmdMainTemplatePlugin(this.name));
71
- break;
72
- case "umd":
73
- case "umd2":
74
- var UmdMainTemplatePlugin = require("./UmdMainTemplatePlugin");
75
- compilation.apply(new UmdMainTemplatePlugin(this.name, {
76
- optionalAmdExternalAsGlobal: this.target === "umd2",
77
- namedDefine: this.umdNamedDefine,
78
- auxiliaryComment: this.auxiliaryComment
79
- }));
80
- break;
81
- case "jsonp":
82
- var JsonpExportMainTemplatePlugin = require("./JsonpExportMainTemplatePlugin");
83
- compilation.apply(new JsonpExportMainTemplatePlugin(this.name));
84
- break;
85
- default:
86
- throw new Error(`${this.target} is not a valid Library target`);
87
- }
88
- });
89
- }
90
- }
91
-
92
- module.exports = LibraryTemplatePlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const SetVarMainTemplatePlugin = require("./SetVarMainTemplatePlugin");
8
+
9
+ function accessorToObjectAccess(accessor) {
10
+ return accessor.map((a) => {
11
+ return `[${JSON.stringify(a)}]`;
12
+ }).join("");
13
+ }
14
+
15
+ function accessorAccess(base, accessor, joinWith) {
16
+ accessor = [].concat(accessor);
17
+ return accessor.map((a, idx) => {
18
+ a = base ?
19
+ base + accessorToObjectAccess(accessor.slice(0, idx + 1)) :
20
+ accessor[0] + accessorToObjectAccess(accessor.slice(1, idx + 1));
21
+ if(idx === accessor.length - 1) return a;
22
+ if(idx === 0 && typeof base === "undefined") return `${a} = typeof ${a} === "object" ? ${a} : {}`;
23
+ return `${a} = ${a} || {}`;
24
+ }).join(joinWith || "; ");
25
+ }
26
+
27
+ class LibraryTemplatePlugin {
28
+
29
+ constructor(name, target, umdNamedDefine, auxiliaryComment, exportProperty) {
30
+ this.name = name;
31
+ this.target = target;
32
+ this.umdNamedDefine = umdNamedDefine;
33
+ this.auxiliaryComment = auxiliaryComment;
34
+ this.exportProperty = exportProperty;
35
+ }
36
+
37
+ apply(compiler) {
38
+ compiler.plugin("this-compilation", (compilation) => {
39
+ if(this.exportProperty) {
40
+ var ExportPropertyMainTemplatePlugin = require("./ExportPropertyMainTemplatePlugin");
41
+ compilation.apply(new ExportPropertyMainTemplatePlugin(this.exportProperty));
42
+ }
43
+ switch(this.target) {
44
+ case "var":
45
+ compilation.apply(new SetVarMainTemplatePlugin(`var ${accessorAccess(false, this.name)}`));
46
+ break;
47
+ case "assign":
48
+ compilation.apply(new SetVarMainTemplatePlugin(accessorAccess(undefined, this.name)));
49
+ break;
50
+ case "this":
51
+ case "window":
52
+ case "global":
53
+ if(this.name)
54
+ compilation.apply(new SetVarMainTemplatePlugin(accessorAccess(this.target, this.name)));
55
+ else
56
+ compilation.apply(new SetVarMainTemplatePlugin(this.target, true));
57
+ break;
58
+ case "commonjs":
59
+ if(this.name)
60
+ compilation.apply(new SetVarMainTemplatePlugin(accessorAccess("exports", this.name)));
61
+ else
62
+ compilation.apply(new SetVarMainTemplatePlugin("exports", true));
63
+ break;
64
+ case "commonjs2":
65
+ case "commonjs-module":
66
+ compilation.apply(new SetVarMainTemplatePlugin("module.exports"));
67
+ break;
68
+ case "amd":
69
+ var AmdMainTemplatePlugin = require("./AmdMainTemplatePlugin");
70
+ compilation.apply(new AmdMainTemplatePlugin(this.name));
71
+ break;
72
+ case "umd":
73
+ case "umd2":
74
+ var UmdMainTemplatePlugin = require("./UmdMainTemplatePlugin");
75
+ compilation.apply(new UmdMainTemplatePlugin(this.name, {
76
+ optionalAmdExternalAsGlobal: this.target === "umd2",
77
+ namedDefine: this.umdNamedDefine,
78
+ auxiliaryComment: this.auxiliaryComment
79
+ }));
80
+ break;
81
+ case "jsonp":
82
+ var JsonpExportMainTemplatePlugin = require("./JsonpExportMainTemplatePlugin");
83
+ compilation.apply(new JsonpExportMainTemplatePlugin(this.name));
84
+ break;
85
+ default:
86
+ throw new Error(`${this.target} is not a valid Library target`);
87
+ }
88
+ });
89
+ }
90
+ }
91
+
92
+ module.exports = LibraryTemplatePlugin;
@@ -1,36 +1,36 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
8
-
9
- class LoaderOptionsPlugin {
10
- constructor(options) {
11
- if(typeof options !== "object") options = {};
12
- if(!options.test) options.test = {
13
- test: () => true
14
- };
15
- this.options = options;
16
- }
17
-
18
- apply(compiler) {
19
- const options = this.options;
20
- compiler.plugin("compilation", (compilation) => {
21
- compilation.plugin("normal-module-loader", (context, module) => {
22
- const resource = module.resource;
23
- if(!resource) return;
24
- const i = resource.indexOf("?");
25
- if(ModuleFilenameHelpers.matchObject(options, i < 0 ? resource : resource.substr(0, i))) {
26
- const filterSet = new Set(["include", "exclude", "test"]);
27
- Object.keys(options)
28
- .filter((key) => !filterSet.has(key))
29
- .forEach((key) => context[key] = options[key]);
30
- }
31
- });
32
- });
33
- }
34
- }
35
-
36
- module.exports = LoaderOptionsPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
8
+
9
+ class LoaderOptionsPlugin {
10
+ constructor(options) {
11
+ if(typeof options !== "object") options = {};
12
+ if(!options.test) options.test = {
13
+ test: () => true
14
+ };
15
+ this.options = options;
16
+ }
17
+
18
+ apply(compiler) {
19
+ const options = this.options;
20
+ compiler.plugin("compilation", (compilation) => {
21
+ compilation.plugin("normal-module-loader", (context, module) => {
22
+ const resource = module.resource;
23
+ if(!resource) return;
24
+ const i = resource.indexOf("?");
25
+ if(ModuleFilenameHelpers.matchObject(options, i < 0 ? resource : resource.substr(0, i))) {
26
+ const filterSet = new Set(["include", "exclude", "test"]);
27
+ Object.keys(options)
28
+ .filter((key) => !filterSet.has(key))
29
+ .forEach((key) => context[key] = options[key]);
30
+ }
31
+ });
32
+ });
33
+ }
34
+ }
35
+
36
+ module.exports = LoaderOptionsPlugin;
@@ -1,19 +1,19 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- class LoaderTargetPlugin {
8
- constructor(target) {
9
- this.target = target;
10
- }
11
-
12
- apply(compiler) {
13
- compiler.plugin("compilation", (compilation) => {
14
- compilation.plugin("normal-module-loader", (loaderContext) => loaderContext.target = this.target);
15
- });
16
- }
17
- }
18
-
19
- module.exports = LoaderTargetPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class LoaderTargetPlugin {
8
+ constructor(target) {
9
+ this.target = target;
10
+ }
11
+
12
+ apply(compiler) {
13
+ compiler.plugin("compilation", (compilation) => {
14
+ compilation.plugin("normal-module-loader", (loaderContext) => loaderContext.target = this.target);
15
+ });
16
+ }
17
+ }
18
+
19
+ module.exports = LoaderTargetPlugin;
@@ -1,5 +1,5 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- module.exports = require("memory-fs");
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ module.exports = require("memory-fs");
@@ -1,42 +1,42 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const WebpackError = require("./WebpackError");
8
- const cutOffLoaderExecution = require("./ErrorHelpers").cutOffLoaderExecution;
9
-
10
- class ModuleBuildError extends WebpackError {
11
- constructor(module, err) {
12
- super();
13
-
14
- this.name = "ModuleBuildError";
15
- this.message = "Module build failed: ";
16
- if(err !== null && typeof err === "object") {
17
- if(typeof err.stack === "string" && err.stack) {
18
- var stack = cutOffLoaderExecution(err.stack);
19
- if(!err.hideStack) {
20
- this.message += stack;
21
- } else {
22
- this.details = stack;
23
- if(typeof err.message === "string" && err.message) {
24
- this.message += err.message;
25
- } else {
26
- this.message += err;
27
- }
28
- }
29
- } else if(typeof err.message === "string" && err.message) {
30
- this.message += err.message;
31
- } else {
32
- this.message += err;
33
- }
34
- }
35
- this.module = module;
36
- this.error = err;
37
-
38
- Error.captureStackTrace(this, this.constructor);
39
- }
40
- }
41
-
42
- module.exports = ModuleBuildError;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const WebpackError = require("./WebpackError");
8
+ const cutOffLoaderExecution = require("./ErrorHelpers").cutOffLoaderExecution;
9
+
10
+ class ModuleBuildError extends WebpackError {
11
+ constructor(module, err) {
12
+ super();
13
+
14
+ this.name = "ModuleBuildError";
15
+ this.message = "Module build failed: ";
16
+ if(err !== null && typeof err === "object") {
17
+ if(typeof err.stack === "string" && err.stack) {
18
+ var stack = cutOffLoaderExecution(err.stack);
19
+ if(!err.hideStack) {
20
+ this.message += stack;
21
+ } else {
22
+ this.details = stack;
23
+ if(typeof err.message === "string" && err.message) {
24
+ this.message += err.message;
25
+ } else {
26
+ this.message += err;
27
+ }
28
+ }
29
+ } else if(typeof err.message === "string" && err.message) {
30
+ this.message += err.message;
31
+ } else {
32
+ this.message += err;
33
+ }
34
+ }
35
+ this.module = module;
36
+ this.error = err;
37
+
38
+ Error.captureStackTrace(this, this.constructor);
39
+ }
40
+ }
41
+
42
+ module.exports = ModuleBuildError;
@@ -1,22 +1,22 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const WebpackError = require("./WebpackError");
8
- const formatLocation = require("./formatLocation");
9
-
10
- module.exports = class ModuleDependencyError extends WebpackError {
11
- constructor(module, err, loc) {
12
- super();
13
-
14
- this.name = "ModuleDependencyError";
15
- this.message = `${formatLocation(loc)} ${err.message}`;
16
- this.details = err.stack.split("\n").slice(1).join("\n");
17
- this.origin = this.module = module;
18
- this.error = err;
19
-
20
- Error.captureStackTrace(this, this.constructor);
21
- }
22
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const WebpackError = require("./WebpackError");
8
+ const formatLocation = require("./formatLocation");
9
+
10
+ module.exports = class ModuleDependencyError extends WebpackError {
11
+ constructor(module, err, loc) {
12
+ super();
13
+
14
+ this.name = "ModuleDependencyError";
15
+ this.message = `${formatLocation(loc)} ${err.message}`;
16
+ this.details = err.stack.split("\n").slice(1).join("\n");
17
+ this.origin = this.module = module;
18
+ this.error = err;
19
+
20
+ Error.captureStackTrace(this, this.constructor);
21
+ }
22
+ };
@@ -1,22 +1,22 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const WebpackError = require("./WebpackError");
8
- const formatLocation = require("./formatLocation");
9
-
10
- module.exports = class ModuleDependencyWarning extends WebpackError {
11
- constructor(module, err, loc) {
12
- super();
13
-
14
- this.name = "ModuleDependencyWarning";
15
- this.message = `${formatLocation(loc)} ${err.message}`;
16
- this.details = err.stack.split("\n").slice(1).join("\n");
17
- this.origin = this.module = module;
18
- this.error = err;
19
-
20
- Error.captureStackTrace(this, this.constructor);
21
- }
22
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const WebpackError = require("./WebpackError");
8
+ const formatLocation = require("./formatLocation");
9
+
10
+ module.exports = class ModuleDependencyWarning extends WebpackError {
11
+ constructor(module, err, loc) {
12
+ super();
13
+
14
+ this.name = "ModuleDependencyWarning";
15
+ this.message = `${formatLocation(loc)} ${err.message}`;
16
+ this.details = err.stack.split("\n").slice(1).join("\n");
17
+ this.origin = this.module = module;
18
+ this.error = err;
19
+
20
+ Error.captureStackTrace(this, this.constructor);
21
+ }
22
+ };