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.
Files changed (212) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +310 -310
  3. package/buildin/amd-define.js +1 -1
  4. package/buildin/amd-options.js +1 -1
  5. package/buildin/module.js +10 -10
  6. package/hot/dev-server.js +63 -63
  7. package/hot/log-apply-result.js +25 -25
  8. package/hot/only-dev-server.js +77 -77
  9. package/hot/poll.js +37 -37
  10. package/hot/signal.js +65 -65
  11. package/lib/APIPlugin.js +49 -49
  12. package/lib/AbstractPlugin.js +22 -22
  13. package/lib/AmdMainTemplatePlugin.js +43 -43
  14. package/lib/ArrayMap.js +50 -50
  15. package/lib/AsyncDependenciesBlock.js +39 -39
  16. package/lib/AutomaticPrefetchPlugin.js +35 -35
  17. package/lib/BannerPlugin.js +34 -34
  18. package/lib/BasicEvaluatedExpression.js +140 -140
  19. package/lib/CachePlugin.js +43 -43
  20. package/lib/CaseSensitiveModulesWarning.js +16 -16
  21. package/lib/Chunk.js +252 -252
  22. package/lib/ChunkRenderError.js +17 -17
  23. package/lib/ChunkTemplate.js +37 -37
  24. package/lib/CompatibilityPlugin.js +42 -42
  25. package/lib/Compilation.js +891 -891
  26. package/lib/Compiler.js +407 -407
  27. package/lib/ConcatSource.js +5 -5
  28. package/lib/ConstPlugin.js +54 -54
  29. package/lib/ContextModule.js +130 -130
  30. package/lib/ContextModuleFactory.js +132 -132
  31. package/lib/ContextReplacementPlugin.js +93 -93
  32. package/lib/CriticalDependenciesWarning.js +24 -24
  33. package/lib/DefinePlugin.js +126 -126
  34. package/lib/DelegatedModule.js +69 -69
  35. package/lib/DelegatedModuleFactoryPlugin.js +51 -51
  36. package/lib/DelegatedPlugin.js +21 -21
  37. package/lib/DependenciesBlock.js +57 -57
  38. package/lib/DependenciesBlockVariable.js +41 -41
  39. package/lib/Dependency.js +54 -54
  40. package/lib/DllEntryPlugin.js +32 -32
  41. package/lib/DllModule.js +55 -55
  42. package/lib/DllModuleFactory.js +18 -18
  43. package/lib/DllPlugin.js +30 -30
  44. package/lib/DllReferencePlugin.js +26 -26
  45. package/lib/EntryModuleNotFoundError.js +15 -15
  46. package/lib/EntryOptionPlugin.js +28 -28
  47. package/lib/EnvironmentPlugin.js +28 -28
  48. package/lib/EvalDevToolModulePlugin.js +17 -17
  49. package/lib/EvalDevToolModuleTemplatePlugin.js +29 -29
  50. package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +68 -68
  51. package/lib/EvalSourceMapDevToolPlugin.js +25 -25
  52. package/lib/ExtendedAPIPlugin.js +45 -45
  53. package/lib/ExternalModule.js +89 -89
  54. package/lib/ExternalModuleFactoryPlugin.js +86 -86
  55. package/lib/ExternalsPlugin.js +16 -16
  56. package/lib/FunctionModulePlugin.js +18 -18
  57. package/lib/FunctionModuleTemplatePlugin.js +39 -39
  58. package/lib/HotModuleReplacement.runtime.js +486 -486
  59. package/lib/HotModuleReplacementPlugin.js +223 -223
  60. package/lib/HotUpdateChunkTemplate.js +28 -28
  61. package/lib/IgnorePlugin.js +32 -32
  62. package/lib/JsonpChunkTemplatePlugin.js +26 -26
  63. package/lib/JsonpExportMainTemplatePlugin.js +28 -28
  64. package/lib/JsonpHotUpdateChunkTemplatePlugin.js +26 -26
  65. package/lib/JsonpMainTemplate.runtime.js +56 -56
  66. package/lib/JsonpMainTemplatePlugin.js +162 -162
  67. package/lib/JsonpTemplatePlugin.js +17 -17
  68. package/lib/LibManifestPlugin.js +49 -49
  69. package/lib/LibraryTemplatePlugin.js +77 -77
  70. package/lib/LoaderTargetPlugin.js +16 -16
  71. package/lib/MainTemplate.js +169 -169
  72. package/lib/MemoryOutputFileSystem.js +5 -5
  73. package/lib/Module.js +116 -116
  74. package/lib/ModuleFilenameHelpers.js +157 -157
  75. package/lib/ModuleNotFoundError.js +17 -17
  76. package/lib/ModuleParseError.js +26 -26
  77. package/lib/ModuleParserHelpers.js +21 -21
  78. package/lib/ModuleReason.js +9 -9
  79. package/lib/ModuleTemplate.js +23 -23
  80. package/lib/MovedToPluginWarningPlugin.js +17 -17
  81. package/lib/MultiCompiler.js +166 -166
  82. package/lib/MultiEntryPlugin.js +31 -31
  83. package/lib/MultiModule.js +71 -71
  84. package/lib/MultiModuleFactory.js +18 -18
  85. package/lib/NamedModulesPlugin.js +21 -21
  86. package/lib/NewWatchingPlugin.js +12 -12
  87. package/lib/NoErrorsPlugin.js +18 -18
  88. package/lib/NodeStuffPlugin.js +99 -99
  89. package/lib/NormalModule.js +322 -322
  90. package/lib/NormalModuleFactory.js +171 -171
  91. package/lib/NormalModuleReplacementPlugin.js +40 -40
  92. package/lib/NullFactory.js +10 -10
  93. package/lib/OldWatchingPlugin.js +14 -14
  94. package/lib/OptionsApply.js +10 -10
  95. package/lib/OriginalSource.js +5 -5
  96. package/lib/Parser.js +938 -938
  97. package/lib/PrefetchPlugin.js +25 -25
  98. package/lib/ProgressPlugin.js +80 -80
  99. package/lib/ProvidePlugin.js +48 -48
  100. package/lib/RawModule.js +65 -65
  101. package/lib/RawSource.js +5 -5
  102. package/lib/RecordIdsPlugin.js +130 -130
  103. package/lib/RequestShortener.js +56 -56
  104. package/lib/RequireJsStuffPlugin.js +38 -38
  105. package/lib/ResolverPlugin.js +34 -34
  106. package/lib/SetVarMainTemplatePlugin.js +36 -36
  107. package/lib/SingleEntryPlugin.js +24 -24
  108. package/lib/Source.js +5 -5
  109. package/lib/SourceMapDevToolModuleOptionsPlugin.js +33 -33
  110. package/lib/SourceMapDevToolPlugin.js +168 -168
  111. package/lib/SourceMapSource.js +5 -5
  112. package/lib/Stats.js +732 -732
  113. package/lib/Template.js +119 -119
  114. package/lib/TemplatedPathPlugin.js +111 -111
  115. package/lib/UmdMainTemplatePlugin.js +146 -146
  116. package/lib/UnsupportedFeatureWarning.js +14 -14
  117. package/lib/WarnCaseSensitiveModulesPlugin.js +27 -27
  118. package/lib/WatchIgnorePlugin.js +45 -45
  119. package/lib/WebpackOptionsApply.js +376 -376
  120. package/lib/WebpackOptionsDefaulter.js +112 -112
  121. package/lib/dependencies/AMDDefineDependency.js +63 -63
  122. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +240 -240
  123. package/lib/dependencies/AMDPlugin.js +115 -115
  124. package/lib/dependencies/AMDRequireArrayDependency.js +34 -34
  125. package/lib/dependencies/AMDRequireContextDependency.js +18 -18
  126. package/lib/dependencies/AMDRequireDependenciesBlock.js +25 -25
  127. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +145 -145
  128. package/lib/dependencies/AMDRequireDependency.js +64 -64
  129. package/lib/dependencies/AMDRequireItemDependency.js +17 -17
  130. package/lib/dependencies/CommonJsPlugin.js +93 -93
  131. package/lib/dependencies/CommonJsRequireContextDependency.js +18 -18
  132. package/lib/dependencies/CommonJsRequireDependency.js +17 -17
  133. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +91 -91
  134. package/lib/dependencies/ConstDependency.js +29 -29
  135. package/lib/dependencies/ContextDependency.js +24 -24
  136. package/lib/dependencies/ContextDependencyHelpers.js +34 -34
  137. package/lib/dependencies/ContextDependencyTemplateAsId.js +22 -22
  138. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +31 -31
  139. package/lib/dependencies/ContextElementDependency.js +17 -17
  140. package/lib/dependencies/DelegatedSourceDependency.js +14 -14
  141. package/lib/dependencies/DepBlockHelpers.js +41 -41
  142. package/lib/dependencies/DllEntryDependency.js +17 -17
  143. package/lib/dependencies/LabeledExportsDependency.js +21 -21
  144. package/lib/dependencies/LabeledModuleDependency.js +36 -36
  145. package/lib/dependencies/LabeledModuleDependencyParserPlugin.js +76 -76
  146. package/lib/dependencies/LabeledModulesPlugin.js +26 -26
  147. package/lib/dependencies/LoaderDependency.js +14 -14
  148. package/lib/dependencies/LoaderPlugin.js +61 -61
  149. package/lib/dependencies/LocalModule.js +19 -19
  150. package/lib/dependencies/LocalModuleDependency.js +23 -23
  151. package/lib/dependencies/LocalModulesHelpers.js +43 -43
  152. package/lib/dependencies/ModuleDependency.js +20 -20
  153. package/lib/dependencies/ModuleDependencyTemplateAsId.js +22 -22
  154. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +22 -22
  155. package/lib/dependencies/ModuleHotAcceptDependency.js +18 -18
  156. package/lib/dependencies/ModuleHotDeclineDependency.js +18 -18
  157. package/lib/dependencies/MultiEntryDependency.js +16 -16
  158. package/lib/dependencies/NullDependency.js +17 -17
  159. package/lib/dependencies/NullDependencyTemplate.js +8 -8
  160. package/lib/dependencies/PrefetchDependency.js +14 -14
  161. package/lib/dependencies/RequireContextDependency.js +17 -17
  162. package/lib/dependencies/RequireContextDependencyParserPlugin.js +33 -33
  163. package/lib/dependencies/RequireContextPlugin.js +64 -64
  164. package/lib/dependencies/RequireEnsureDependenciesBlock.js +20 -20
  165. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +66 -66
  166. package/lib/dependencies/RequireEnsureDependency.js +29 -29
  167. package/lib/dependencies/RequireEnsureItemDependency.js +16 -16
  168. package/lib/dependencies/RequireEnsurePlugin.js +38 -38
  169. package/lib/dependencies/RequireHeaderDependency.js +25 -25
  170. package/lib/dependencies/RequireIncludeDependency.js +25 -25
  171. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +18 -18
  172. package/lib/dependencies/RequireIncludePlugin.js +31 -31
  173. package/lib/dependencies/RequireResolveContextDependency.js +18 -18
  174. package/lib/dependencies/RequireResolveDependency.js +17 -17
  175. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +69 -69
  176. package/lib/dependencies/RequireResolveHeaderDependency.js +25 -25
  177. package/lib/dependencies/SingleEntryDependency.js +14 -14
  178. package/lib/dependencies/TemplateArgumentDependency.js +26 -26
  179. package/lib/dependencies/WebpackMissingModule.js +23 -23
  180. package/lib/dependencies/getFunctionExpression.js +43 -43
  181. package/lib/node/NodeChunkTemplatePlugin.js +22 -22
  182. package/lib/node/NodeEnvironmentPlugin.js +25 -25
  183. package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +24 -24
  184. package/lib/node/NodeMainTemplate.runtime.js +20 -20
  185. package/lib/node/NodeMainTemplateAsync.runtime.js +34 -34
  186. package/lib/node/NodeMainTemplatePlugin.js +164 -164
  187. package/lib/node/NodeOutputFileSystem.js +17 -17
  188. package/lib/node/NodeSourcePlugin.js +85 -75
  189. package/lib/node/NodeTargetPlugin.js +12 -12
  190. package/lib/node/NodeTemplatePlugin.js +21 -21
  191. package/lib/node/NodeWatchFileSystem.js +65 -65
  192. package/lib/node/OldNodeWatchFileSystem.js +265 -265
  193. package/lib/optimize/AggressiveMergingPlugin.js +115 -115
  194. package/lib/optimize/CommonsChunkPlugin.js +178 -178
  195. package/lib/optimize/DedupePlugin.js +227 -227
  196. package/lib/optimize/FlagIncludedChunksPlugin.js +24 -24
  197. package/lib/optimize/LimitChunkCountPlugin.js +55 -55
  198. package/lib/optimize/MergeDuplicateChunksPlugin.js +30 -30
  199. package/lib/optimize/MinChunkSizePlugin.js +61 -61
  200. package/lib/optimize/OccurenceOrderPlugin.js +5 -5
  201. package/lib/optimize/OccurrenceOrderPlugin.js +91 -91
  202. package/lib/optimize/RemoveEmptyChunksPlugin.js +19 -19
  203. package/lib/optimize/RemoveParentModulesPlugin.js +50 -50
  204. package/lib/optimize/UglifyJsPlugin.js +146 -146
  205. package/lib/removeAndDo.js +13 -13
  206. package/lib/web/WebEnvironmentPlugin.js +16 -16
  207. package/lib/webpack.js +113 -113
  208. package/lib/webpack.web.js +27 -27
  209. package/lib/webworker/WebWorkerChunkTemplatePlugin.js +26 -26
  210. package/lib/webworker/WebWorkerMainTemplatePlugin.js +78 -78
  211. package/lib/webworker/WebWorkerTemplatePlugin.js +15 -15
  212. package/package.json +4 -4
@@ -1,64 +1,64 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var RequireContextDependency = require("./RequireContextDependency");
6
- var ContextElementDependency = require("./ContextElementDependency");
7
-
8
- var RequireContextDependencyParserPlugin = require("./RequireContextDependencyParserPlugin");
9
-
10
- function RequireContextPlugin(modulesDirectories, extensions) {
11
- this.modulesDirectories = modulesDirectories;
12
- this.extensions = extensions;
13
- }
14
- module.exports = RequireContextPlugin;
15
-
16
- RequireContextPlugin.prototype.apply = function(compiler) {
17
- var modulesDirectories = this.modulesDirectories;
18
- var extensions = this.extensions;
19
- compiler.plugin("compilation", function(compilation, params) {
20
- var contextModuleFactory = params.contextModuleFactory;
21
- var normalModuleFactory = params.normalModuleFactory;
22
-
23
- compilation.dependencyFactories.set(RequireContextDependency, contextModuleFactory);
24
- compilation.dependencyTemplates.set(RequireContextDependency, new RequireContextDependency.Template());
25
-
26
- compilation.dependencyFactories.set(ContextElementDependency, normalModuleFactory);
27
- });
28
- compiler.plugin("context-module-factory", function(cmf) {
29
- cmf.plugin("alternatives", function(items, callback) {
30
- if(items.length === 0) return callback(null, items);
31
-
32
- callback(null, items.map(function(obj) {
33
- return extensions.filter(function(ext) {
34
- var l = obj.request.length;
35
- return l > ext.length && obj.request.substr(l - ext.length, l) === ext;
36
- }).map(function(ext) {
37
- var l = obj.request.length;
38
- return {
39
- context: obj.context,
40
- request: obj.request.substr(0, l - ext.length)
41
- };
42
- });
43
- }).reduce(function(a, b) {
44
- return a.concat(b);
45
- }, []));
46
- });
47
- cmf.plugin("alternatives", function(items, callback) {
48
- if(items.length === 0) return callback(null, items);
49
-
50
- callback(null, items.map(function(obj) {
51
- for(var i = 0; i < modulesDirectories.length; i++) {
52
- var dir = modulesDirectories[i];
53
- var idx = obj.request.indexOf("./" + dir + "/");
54
- if(idx === 0) {
55
- obj.request = obj.request.slice(dir.length + 3);
56
- break;
57
- }
58
- }
59
- return obj;
60
- }));
61
- });
62
- });
63
- new RequireContextDependencyParserPlugin().apply(compiler.parser);
64
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var RequireContextDependency = require("./RequireContextDependency");
6
+ var ContextElementDependency = require("./ContextElementDependency");
7
+
8
+ var RequireContextDependencyParserPlugin = require("./RequireContextDependencyParserPlugin");
9
+
10
+ function RequireContextPlugin(modulesDirectories, extensions) {
11
+ this.modulesDirectories = modulesDirectories;
12
+ this.extensions = extensions;
13
+ }
14
+ module.exports = RequireContextPlugin;
15
+
16
+ RequireContextPlugin.prototype.apply = function(compiler) {
17
+ var modulesDirectories = this.modulesDirectories;
18
+ var extensions = this.extensions;
19
+ compiler.plugin("compilation", function(compilation, params) {
20
+ var contextModuleFactory = params.contextModuleFactory;
21
+ var normalModuleFactory = params.normalModuleFactory;
22
+
23
+ compilation.dependencyFactories.set(RequireContextDependency, contextModuleFactory);
24
+ compilation.dependencyTemplates.set(RequireContextDependency, new RequireContextDependency.Template());
25
+
26
+ compilation.dependencyFactories.set(ContextElementDependency, normalModuleFactory);
27
+ });
28
+ compiler.plugin("context-module-factory", function(cmf) {
29
+ cmf.plugin("alternatives", function(items, callback) {
30
+ if(items.length === 0) return callback(null, items);
31
+
32
+ callback(null, items.map(function(obj) {
33
+ return extensions.filter(function(ext) {
34
+ var l = obj.request.length;
35
+ return l > ext.length && obj.request.substr(l - ext.length, l) === ext;
36
+ }).map(function(ext) {
37
+ var l = obj.request.length;
38
+ return {
39
+ context: obj.context,
40
+ request: obj.request.substr(0, l - ext.length)
41
+ };
42
+ });
43
+ }).reduce(function(a, b) {
44
+ return a.concat(b);
45
+ }, []));
46
+ });
47
+ cmf.plugin("alternatives", function(items, callback) {
48
+ if(items.length === 0) return callback(null, items);
49
+
50
+ callback(null, items.map(function(obj) {
51
+ for(var i = 0; i < modulesDirectories.length; i++) {
52
+ var dir = modulesDirectories[i];
53
+ var idx = obj.request.indexOf("./" + dir + "/");
54
+ if(idx === 0) {
55
+ obj.request = obj.request.slice(dir.length + 3);
56
+ break;
57
+ }
58
+ }
59
+ return obj;
60
+ }));
61
+ });
62
+ });
63
+ new RequireContextDependencyParserPlugin().apply(compiler.parser);
64
+ };
@@ -1,20 +1,20 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
6
- var RequireEnsureDependency = require("./RequireEnsureDependency");
7
-
8
- function RequireEnsureDependenciesBlock(expr, fnExpression, chunkName, chunkNameRange, module, loc) {
9
- AsyncDependenciesBlock.call(this, chunkName, module, loc);
10
- this.expr = expr;
11
- var bodyRange = fnExpression && fnExpression.body && fnExpression.body.range;
12
- this.range = bodyRange && [bodyRange[0] + 1, bodyRange[1] - 1] || null;
13
- this.chunkNameRange = chunkNameRange;
14
- var dep = new RequireEnsureDependency(this);
15
- dep.loc = loc;
16
- this.addDependency(dep);
17
- }
18
- module.exports = RequireEnsureDependenciesBlock;
19
-
20
- RequireEnsureDependenciesBlock.prototype = Object.create(AsyncDependenciesBlock.prototype);
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
6
+ var RequireEnsureDependency = require("./RequireEnsureDependency");
7
+
8
+ function RequireEnsureDependenciesBlock(expr, fnExpression, chunkName, chunkNameRange, module, loc) {
9
+ AsyncDependenciesBlock.call(this, chunkName, module, loc);
10
+ this.expr = expr;
11
+ var bodyRange = fnExpression && fnExpression.body && fnExpression.body.range;
12
+ this.range = bodyRange && [bodyRange[0] + 1, bodyRange[1] - 1] || null;
13
+ this.chunkNameRange = chunkNameRange;
14
+ var dep = new RequireEnsureDependency(this);
15
+ dep.loc = loc;
16
+ this.addDependency(dep);
17
+ }
18
+ module.exports = RequireEnsureDependenciesBlock;
19
+
20
+ RequireEnsureDependenciesBlock.prototype = Object.create(AsyncDependenciesBlock.prototype);
@@ -1,66 +1,66 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var AbstractPlugin = require("../AbstractPlugin");
6
- var RequireEnsureDependenciesBlock = require("./RequireEnsureDependenciesBlock");
7
- var RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
8
- var getFunctionExpression = require("./getFunctionExpression");
9
-
10
- module.exports = AbstractPlugin.create({
11
- "call require.ensure": function(expr) {
12
- var chunkName = null,
13
- chunkNameRange = null;
14
- switch(expr.arguments.length) {
15
- case 3:
16
- var chunkNameExpr = this.evaluateExpression(expr.arguments[2]);
17
- if(!chunkNameExpr.isString()) return;
18
- chunkNameRange = chunkNameExpr.range;
19
- chunkName = chunkNameExpr.string;
20
- // falls through
21
- case 2:
22
- var dependenciesExpr = this.evaluateExpression(expr.arguments[0]);
23
- var dependenciesItems = dependenciesExpr.isArray() ? dependenciesExpr.items : [dependenciesExpr];
24
- var fnExpressionArg = expr.arguments[1];
25
- var fnExpression = getFunctionExpression(fnExpressionArg);
26
-
27
- if(fnExpression) {
28
- this.walkExpressions(fnExpression.expressions);
29
- }
30
-
31
- var dep = new RequireEnsureDependenciesBlock(expr, fnExpression ? fnExpression.fn : fnExpressionArg, chunkName, chunkNameRange, this.state.module, expr.loc);
32
- var old = this.state.current;
33
- this.state.current = dep;
34
- try {
35
- var failed = false;
36
- this.inScope([], function() {
37
- dependenciesItems.forEach(function(ee) {
38
- if(ee.isString()) {
39
- var edep = new RequireEnsureItemDependency(ee.string, ee.range);
40
- edep.loc = dep.loc;
41
- dep.addDependency(edep);
42
- } else {
43
- failed = true;
44
- }
45
- });
46
- });
47
- if(failed) {
48
- return;
49
- }
50
- if(fnExpression) {
51
- if(fnExpression.fn.body.type === "BlockStatement")
52
- this.walkStatement(fnExpression.fn.body);
53
- else
54
- this.walkExpression(fnExpression.fn.body);
55
- }
56
- old.addBlock(dep);
57
- } finally {
58
- this.state.current = old;
59
- }
60
- if(!fnExpression) {
61
- this.walkExpression(fnExpressionArg);
62
- }
63
- return true;
64
- }
65
- }
66
- });
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var AbstractPlugin = require("../AbstractPlugin");
6
+ var RequireEnsureDependenciesBlock = require("./RequireEnsureDependenciesBlock");
7
+ var RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
8
+ var getFunctionExpression = require("./getFunctionExpression");
9
+
10
+ module.exports = AbstractPlugin.create({
11
+ "call require.ensure": function(expr) {
12
+ var chunkName = null,
13
+ chunkNameRange = null;
14
+ switch(expr.arguments.length) {
15
+ case 3:
16
+ var chunkNameExpr = this.evaluateExpression(expr.arguments[2]);
17
+ if(!chunkNameExpr.isString()) return;
18
+ chunkNameRange = chunkNameExpr.range;
19
+ chunkName = chunkNameExpr.string;
20
+ // falls through
21
+ case 2:
22
+ var dependenciesExpr = this.evaluateExpression(expr.arguments[0]);
23
+ var dependenciesItems = dependenciesExpr.isArray() ? dependenciesExpr.items : [dependenciesExpr];
24
+ var fnExpressionArg = expr.arguments[1];
25
+ var fnExpression = getFunctionExpression(fnExpressionArg);
26
+
27
+ if(fnExpression) {
28
+ this.walkExpressions(fnExpression.expressions);
29
+ }
30
+
31
+ var dep = new RequireEnsureDependenciesBlock(expr, fnExpression ? fnExpression.fn : fnExpressionArg, chunkName, chunkNameRange, this.state.module, expr.loc);
32
+ var old = this.state.current;
33
+ this.state.current = dep;
34
+ try {
35
+ var failed = false;
36
+ this.inScope([], function() {
37
+ dependenciesItems.forEach(function(ee) {
38
+ if(ee.isString()) {
39
+ var edep = new RequireEnsureItemDependency(ee.string, ee.range);
40
+ edep.loc = dep.loc;
41
+ dep.addDependency(edep);
42
+ } else {
43
+ failed = true;
44
+ }
45
+ });
46
+ });
47
+ if(failed) {
48
+ return;
49
+ }
50
+ if(fnExpression) {
51
+ if(fnExpression.fn.body.type === "BlockStatement")
52
+ this.walkStatement(fnExpression.fn.body);
53
+ else
54
+ this.walkExpression(fnExpression.fn.body);
55
+ }
56
+ old.addBlock(dep);
57
+ } finally {
58
+ this.state.current = old;
59
+ }
60
+ if(!fnExpression) {
61
+ this.walkExpression(fnExpressionArg);
62
+ }
63
+ return true;
64
+ }
65
+ }
66
+ });
@@ -1,29 +1,29 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var NullDependency = require("./NullDependency");
6
- var DepBlockHelpers = require("./DepBlockHelpers");
7
-
8
- function RequireEnsureDependency(block) {
9
- NullDependency.call(this);
10
- this.block = block;
11
- }
12
- module.exports = RequireEnsureDependency;
13
-
14
- RequireEnsureDependency.prototype = Object.create(NullDependency.prototype);
15
- RequireEnsureDependency.prototype.constructor = RequireEnsureDependency;
16
- RequireEnsureDependency.prototype.type = "require.ensure";
17
-
18
- RequireEnsureDependency.Template = function RequireEnsureDependencyTemplate() {};
19
-
20
- RequireEnsureDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) {
21
- var depBlock = dep.block;
22
- var wrapper = DepBlockHelpers.getLoadDepBlockWrapper(depBlock, outputOptions, requestShortener, /*require.e*/ "nsure");
23
- if(!wrapper) wrapper = [
24
- "!/* require.ensure */(",
25
- "(__webpack_require__))"
26
- ];
27
- source.replace(depBlock.expr.range[0], depBlock.expr.arguments[1].range[0] - 1, wrapper[0]);
28
- source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.range[1] - 1, wrapper[1]);
29
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var NullDependency = require("./NullDependency");
6
+ var DepBlockHelpers = require("./DepBlockHelpers");
7
+
8
+ function RequireEnsureDependency(block) {
9
+ NullDependency.call(this);
10
+ this.block = block;
11
+ }
12
+ module.exports = RequireEnsureDependency;
13
+
14
+ RequireEnsureDependency.prototype = Object.create(NullDependency.prototype);
15
+ RequireEnsureDependency.prototype.constructor = RequireEnsureDependency;
16
+ RequireEnsureDependency.prototype.type = "require.ensure";
17
+
18
+ RequireEnsureDependency.Template = function RequireEnsureDependencyTemplate() {};
19
+
20
+ RequireEnsureDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) {
21
+ var depBlock = dep.block;
22
+ var wrapper = DepBlockHelpers.getLoadDepBlockWrapper(depBlock, outputOptions, requestShortener, /*require.e*/ "nsure");
23
+ if(!wrapper) wrapper = [
24
+ "!/* require.ensure */(",
25
+ "(__webpack_require__))"
26
+ ];
27
+ source.replace(depBlock.expr.range[0], depBlock.expr.arguments[1].range[0] - 1, wrapper[0]);
28
+ source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.range[1] - 1, wrapper[1]);
29
+ };
@@ -1,16 +1,16 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var ModuleDependency = require("./ModuleDependency");
6
-
7
- function RequireEnsureItemDependency(request) {
8
- ModuleDependency.call(this, request);
9
- }
10
- module.exports = RequireEnsureItemDependency;
11
-
12
- RequireEnsureItemDependency.prototype = Object.create(ModuleDependency.prototype);
13
- RequireEnsureItemDependency.prototype.constructor = RequireEnsureItemDependency;
14
- RequireEnsureItemDependency.prototype.type = "require.ensure item";
15
-
16
- RequireEnsureItemDependency.Template = require("./NullDependencyTemplate");
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var ModuleDependency = require("./ModuleDependency");
6
+
7
+ function RequireEnsureItemDependency(request) {
8
+ ModuleDependency.call(this, request);
9
+ }
10
+ module.exports = RequireEnsureItemDependency;
11
+
12
+ RequireEnsureItemDependency.prototype = Object.create(ModuleDependency.prototype);
13
+ RequireEnsureItemDependency.prototype.constructor = RequireEnsureItemDependency;
14
+ RequireEnsureItemDependency.prototype.type = "require.ensure item";
15
+
16
+ RequireEnsureItemDependency.Template = require("./NullDependencyTemplate");
@@ -1,38 +1,38 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
6
- var RequireEnsureDependency = require("./RequireEnsureDependency");
7
- var ConstDependency = require("./ConstDependency");
8
-
9
- var NullFactory = require("../NullFactory");
10
-
11
- var RequireEnsureDependenciesBlockParserPlugin = require("./RequireEnsureDependenciesBlockParserPlugin");
12
-
13
- var BasicEvaluatedExpression = require("../BasicEvaluatedExpression");
14
-
15
- function RequireEnsurePlugin() {}
16
- module.exports = RequireEnsurePlugin;
17
-
18
- RequireEnsurePlugin.prototype.apply = function(compiler) {
19
- compiler.plugin("compilation", function(compilation, params) {
20
- var normalModuleFactory = params.normalModuleFactory;
21
-
22
- compilation.dependencyFactories.set(RequireEnsureItemDependency, normalModuleFactory);
23
- compilation.dependencyTemplates.set(RequireEnsureItemDependency, new RequireEnsureItemDependency.Template());
24
-
25
- compilation.dependencyFactories.set(RequireEnsureDependency, new NullFactory());
26
- compilation.dependencyTemplates.set(RequireEnsureDependency, new RequireEnsureDependency.Template());
27
- });
28
- new RequireEnsureDependenciesBlockParserPlugin().apply(compiler.parser);
29
- compiler.parser.plugin("evaluate typeof require.ensure", function(expr) {
30
- return new BasicEvaluatedExpression().setString("function").setRange(expr.range);
31
- });
32
- compiler.parser.plugin("typeof require.ensure", function(expr) {
33
- var dep = new ConstDependency("'function'", expr.range);
34
- dep.loc = expr.loc;
35
- this.state.current.addDependency(dep);
36
- return true;
37
- });
38
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
6
+ var RequireEnsureDependency = require("./RequireEnsureDependency");
7
+ var ConstDependency = require("./ConstDependency");
8
+
9
+ var NullFactory = require("../NullFactory");
10
+
11
+ var RequireEnsureDependenciesBlockParserPlugin = require("./RequireEnsureDependenciesBlockParserPlugin");
12
+
13
+ var BasicEvaluatedExpression = require("../BasicEvaluatedExpression");
14
+
15
+ function RequireEnsurePlugin() {}
16
+ module.exports = RequireEnsurePlugin;
17
+
18
+ RequireEnsurePlugin.prototype.apply = function(compiler) {
19
+ compiler.plugin("compilation", function(compilation, params) {
20
+ var normalModuleFactory = params.normalModuleFactory;
21
+
22
+ compilation.dependencyFactories.set(RequireEnsureItemDependency, normalModuleFactory);
23
+ compilation.dependencyTemplates.set(RequireEnsureItemDependency, new RequireEnsureItemDependency.Template());
24
+
25
+ compilation.dependencyFactories.set(RequireEnsureDependency, new NullFactory());
26
+ compilation.dependencyTemplates.set(RequireEnsureDependency, new RequireEnsureDependency.Template());
27
+ });
28
+ new RequireEnsureDependenciesBlockParserPlugin().apply(compiler.parser);
29
+ compiler.parser.plugin("evaluate typeof require.ensure", function(expr) {
30
+ return new BasicEvaluatedExpression().setString("function").setRange(expr.range);
31
+ });
32
+ compiler.parser.plugin("typeof require.ensure", function(expr) {
33
+ var dep = new ConstDependency("'function'", expr.range);
34
+ dep.loc = expr.loc;
35
+ this.state.current.addDependency(dep);
36
+ return true;
37
+ });
38
+ };
@@ -1,25 +1,25 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var NullDependency = require("./NullDependency");
6
-
7
- function RequireHeaderDependency(range) {
8
- if(!Array.isArray(range)) throw new Error("range must be valid");
9
- NullDependency.call(this);
10
- this.range = range;
11
- }
12
- module.exports = RequireHeaderDependency;
13
-
14
- RequireHeaderDependency.prototype = Object.create(NullDependency.prototype);
15
- RequireHeaderDependency.prototype.constructor = RequireHeaderDependency;
16
-
17
- RequireHeaderDependency.Template = function RequireHeaderDependencyTemplate() {};
18
-
19
- RequireHeaderDependency.Template.prototype.apply = function(dep, source) {
20
- source.replace(dep.range[0], dep.range[1] - 1, "__webpack_require__");
21
- };
22
-
23
- RequireHeaderDependency.Template.prototype.applyAsTemplateArgument = function(name, dep, source) {
24
- source.replace(dep.range[0], dep.range[1] - 1, "require");
25
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var NullDependency = require("./NullDependency");
6
+
7
+ function RequireHeaderDependency(range) {
8
+ if(!Array.isArray(range)) throw new Error("range must be valid");
9
+ NullDependency.call(this);
10
+ this.range = range;
11
+ }
12
+ module.exports = RequireHeaderDependency;
13
+
14
+ RequireHeaderDependency.prototype = Object.create(NullDependency.prototype);
15
+ RequireHeaderDependency.prototype.constructor = RequireHeaderDependency;
16
+
17
+ RequireHeaderDependency.Template = function RequireHeaderDependencyTemplate() {};
18
+
19
+ RequireHeaderDependency.Template.prototype.apply = function(dep, source) {
20
+ source.replace(dep.range[0], dep.range[1] - 1, "__webpack_require__");
21
+ };
22
+
23
+ RequireHeaderDependency.Template.prototype.applyAsTemplateArgument = function(name, dep, source) {
24
+ source.replace(dep.range[0], dep.range[1] - 1, "require");
25
+ };
@@ -1,25 +1,25 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var ModuleDependency = require("./ModuleDependency");
6
-
7
- function RequireIncludeDependency(request, range) {
8
- ModuleDependency.call(this, request);
9
- this.range = range;
10
- }
11
- module.exports = RequireIncludeDependency;
12
-
13
- RequireIncludeDependency.prototype = Object.create(ModuleDependency.prototype);
14
- RequireIncludeDependency.prototype.constructor = RequireIncludeDependency;
15
- RequireIncludeDependency.prototype.type = "require.include";
16
-
17
- RequireIncludeDependency.Template = function RequireIncludeDependencyTemplate() {};
18
-
19
- RequireIncludeDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) {
20
- var comment = "";
21
- if(outputOptions.pathinfo && dep.module)
22
- comment = "/*! require.include " + requestShortener.shorten(dep.request) + " */";
23
- source.replace(dep.range[0], dep.range[1] - 1,
24
- "undefined" + comment);
25
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var ModuleDependency = require("./ModuleDependency");
6
+
7
+ function RequireIncludeDependency(request, range) {
8
+ ModuleDependency.call(this, request);
9
+ this.range = range;
10
+ }
11
+ module.exports = RequireIncludeDependency;
12
+
13
+ RequireIncludeDependency.prototype = Object.create(ModuleDependency.prototype);
14
+ RequireIncludeDependency.prototype.constructor = RequireIncludeDependency;
15
+ RequireIncludeDependency.prototype.type = "require.include";
16
+
17
+ RequireIncludeDependency.Template = function RequireIncludeDependencyTemplate() {};
18
+
19
+ RequireIncludeDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) {
20
+ var comment = "";
21
+ if(outputOptions.pathinfo && dep.module)
22
+ comment = "/*! require.include " + requestShortener.shorten(dep.request) + " */";
23
+ source.replace(dep.range[0], dep.range[1] - 1,
24
+ "undefined" + comment);
25
+ };
@@ -1,18 +1,18 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- var AbstractPlugin = require("../AbstractPlugin");
6
- var RequireIncludeDependency = require("./RequireIncludeDependency");
7
-
8
- module.exports = AbstractPlugin.create({
9
- "call require.include": function(expr) {
10
- if(expr.arguments.length !== 1) return;
11
- var param = this.evaluateExpression(expr.arguments[0]);
12
- if(!param.isString()) return;
13
- var dep = new RequireIncludeDependency(param.string, expr.range);
14
- dep.loc = expr.loc;
15
- this.state.current.addDependency(dep);
16
- return true;
17
- }
18
- });
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ var AbstractPlugin = require("../AbstractPlugin");
6
+ var RequireIncludeDependency = require("./RequireIncludeDependency");
7
+
8
+ module.exports = AbstractPlugin.create({
9
+ "call require.include": function(expr) {
10
+ if(expr.arguments.length !== 1) return;
11
+ var param = this.evaluateExpression(expr.arguments[0]);
12
+ if(!param.isString()) return;
13
+ var dep = new RequireIncludeDependency(param.string, expr.range);
14
+ dep.loc = expr.loc;
15
+ this.state.current.addDependency(dep);
16
+ return true;
17
+ }
18
+ });