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,89 +1,89 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const CommonJsRequireDependency = require("./CommonJsRequireDependency");
8
- const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
9
- const RequireHeaderDependency = require("./RequireHeaderDependency");
10
- const LocalModuleDependency = require("./LocalModuleDependency");
11
- const ContextDependencyHelpers = require("./ContextDependencyHelpers");
12
- const LocalModulesHelpers = require("./LocalModulesHelpers");
13
- const ParserHelpers = require("../ParserHelpers");
14
-
15
- class CommonJsRequireDependencyParserPlugin {
16
- constructor(options) {
17
- this.options = options;
18
- }
19
-
20
- apply(parser) {
21
- const options = this.options;
22
- parser.plugin("expression require.cache", ParserHelpers.toConstantDependency("__webpack_require__.c"));
23
- parser.plugin("expression require", (expr) => {
24
- const dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range);
25
- dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted";
26
- dep.loc = expr.loc;
27
- dep.optional = !!parser.scope.inTry;
28
- parser.state.current.addDependency(dep);
29
- return true;
30
- });
31
- parser.plugin("call require", (expr) => {
32
- if(expr.arguments.length !== 1) return;
33
- let localModule;
34
- const param = parser.evaluateExpression(expr.arguments[0]);
35
- if(param.isConditional()) {
36
- let isExpression = false;
37
- const prevLength = parser.state.current.dependencies.length;
38
- const dep = new RequireHeaderDependency(expr.callee.range);
39
- dep.loc = expr.loc;
40
- parser.state.current.addDependency(dep);
41
- param.options.forEach(function(param) {
42
- const result = parser.applyPluginsBailResult("call require:commonjs:item", expr, param);
43
- if(result === undefined) {
44
- isExpression = true;
45
- }
46
- });
47
- if(isExpression) {
48
- parser.state.current.dependencies.length = prevLength;
49
- } else {
50
- return true;
51
- }
52
- }
53
- if(param.isString() && (localModule = LocalModulesHelpers.getLocalModule(parser.state, param.string))) {
54
- const dep = new LocalModuleDependency(localModule, expr.range);
55
- dep.loc = expr.loc;
56
- parser.state.current.addDependency(dep);
57
- return true;
58
- } else {
59
- const result = parser.applyPluginsBailResult("call require:commonjs:item", expr, param);
60
- if(result === undefined) {
61
- parser.applyPluginsBailResult("call require:commonjs:context", expr, param);
62
- } else {
63
- const dep = new RequireHeaderDependency(expr.callee.range);
64
- dep.loc = expr.loc;
65
- parser.state.current.addDependency(dep);
66
- }
67
- return true;
68
- }
69
- });
70
- parser.plugin("call require:commonjs:item", (expr, param) => {
71
- if(param.isString()) {
72
- const dep = new CommonJsRequireDependency(param.string, param.range);
73
- dep.loc = expr.loc;
74
- dep.optional = !!parser.scope.inTry;
75
- parser.state.current.addDependency(dep);
76
- return true;
77
- }
78
- });
79
- parser.plugin("call require:commonjs:context", (expr, param) => {
80
- const dep = ContextDependencyHelpers.create(CommonJsRequireContextDependency, expr.range, param, expr, options);
81
- if(!dep) return;
82
- dep.loc = expr.loc;
83
- dep.optional = !!parser.scope.inTry;
84
- parser.state.current.addDependency(dep);
85
- return true;
86
- });
87
- }
88
- }
89
- module.exports = CommonJsRequireDependencyParserPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const CommonJsRequireDependency = require("./CommonJsRequireDependency");
8
+ const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
9
+ const RequireHeaderDependency = require("./RequireHeaderDependency");
10
+ const LocalModuleDependency = require("./LocalModuleDependency");
11
+ const ContextDependencyHelpers = require("./ContextDependencyHelpers");
12
+ const LocalModulesHelpers = require("./LocalModulesHelpers");
13
+ const ParserHelpers = require("../ParserHelpers");
14
+
15
+ class CommonJsRequireDependencyParserPlugin {
16
+ constructor(options) {
17
+ this.options = options;
18
+ }
19
+
20
+ apply(parser) {
21
+ const options = this.options;
22
+ parser.plugin("expression require.cache", ParserHelpers.toConstantDependency("__webpack_require__.c"));
23
+ parser.plugin("expression require", (expr) => {
24
+ const dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range);
25
+ dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted";
26
+ dep.loc = expr.loc;
27
+ dep.optional = !!parser.scope.inTry;
28
+ parser.state.current.addDependency(dep);
29
+ return true;
30
+ });
31
+ parser.plugin("call require", (expr) => {
32
+ if(expr.arguments.length !== 1) return;
33
+ let localModule;
34
+ const param = parser.evaluateExpression(expr.arguments[0]);
35
+ if(param.isConditional()) {
36
+ let isExpression = false;
37
+ const prevLength = parser.state.current.dependencies.length;
38
+ const dep = new RequireHeaderDependency(expr.callee.range);
39
+ dep.loc = expr.loc;
40
+ parser.state.current.addDependency(dep);
41
+ param.options.forEach(function(param) {
42
+ const result = parser.applyPluginsBailResult("call require:commonjs:item", expr, param);
43
+ if(result === undefined) {
44
+ isExpression = true;
45
+ }
46
+ });
47
+ if(isExpression) {
48
+ parser.state.current.dependencies.length = prevLength;
49
+ } else {
50
+ return true;
51
+ }
52
+ }
53
+ if(param.isString() && (localModule = LocalModulesHelpers.getLocalModule(parser.state, param.string))) {
54
+ const dep = new LocalModuleDependency(localModule, expr.range);
55
+ dep.loc = expr.loc;
56
+ parser.state.current.addDependency(dep);
57
+ return true;
58
+ } else {
59
+ const result = parser.applyPluginsBailResult("call require:commonjs:item", expr, param);
60
+ if(result === undefined) {
61
+ parser.applyPluginsBailResult("call require:commonjs:context", expr, param);
62
+ } else {
63
+ const dep = new RequireHeaderDependency(expr.callee.range);
64
+ dep.loc = expr.loc;
65
+ parser.state.current.addDependency(dep);
66
+ }
67
+ return true;
68
+ }
69
+ });
70
+ parser.plugin("call require:commonjs:item", (expr, param) => {
71
+ if(param.isString()) {
72
+ const dep = new CommonJsRequireDependency(param.string, param.range);
73
+ dep.loc = expr.loc;
74
+ dep.optional = !!parser.scope.inTry;
75
+ parser.state.current.addDependency(dep);
76
+ return true;
77
+ }
78
+ });
79
+ parser.plugin("call require:commonjs:context", (expr, param) => {
80
+ const dep = ContextDependencyHelpers.create(CommonJsRequireContextDependency, expr.range, param, expr, options);
81
+ if(!dep) return;
82
+ dep.loc = expr.loc;
83
+ dep.optional = !!parser.scope.inTry;
84
+ parser.state.current.addDependency(dep);
85
+ return true;
86
+ });
87
+ }
88
+ }
89
+ module.exports = CommonJsRequireDependencyParserPlugin;
@@ -1,32 +1,32 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- const NullDependency = require("./NullDependency");
7
-
8
- class ConstDependency extends NullDependency {
9
- constructor(expression, range) {
10
- super();
11
- this.expression = expression;
12
- this.range = range;
13
- }
14
-
15
- updateHash(hash) {
16
- hash.update(this.range + "");
17
- hash.update(this.expression + "");
18
- }
19
- }
20
-
21
- ConstDependency.Template = class ConstDependencyTemplate {
22
- apply(dep, source) {
23
- if(typeof dep.range === "number") {
24
- source.insert(dep.range, dep.expression);
25
- return;
26
- }
27
-
28
- source.replace(dep.range[0], dep.range[1] - 1, dep.expression);
29
- }
30
- };
31
-
32
- module.exports = ConstDependency;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const NullDependency = require("./NullDependency");
7
+
8
+ class ConstDependency extends NullDependency {
9
+ constructor(expression, range) {
10
+ super();
11
+ this.expression = expression;
12
+ this.range = range;
13
+ }
14
+
15
+ updateHash(hash) {
16
+ hash.update(this.range + "");
17
+ hash.update(this.expression + "");
18
+ }
19
+ }
20
+
21
+ ConstDependency.Template = class ConstDependencyTemplate {
22
+ apply(dep, source) {
23
+ if(typeof dep.range === "number") {
24
+ source.insert(dep.range, dep.expression);
25
+ return;
26
+ }
27
+
28
+ source.replace(dep.range[0], dep.range[1] - 1, dep.expression);
29
+ }
30
+ };
31
+
32
+ module.exports = ConstDependency;
@@ -1,71 +1,71 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const ContextDependencyHelpers = exports;
8
-
9
- /**
10
- * Escapes regular expression metacharacters
11
- * @param {string} str String to quote
12
- * @return {string} Escaped string
13
- */
14
- function quotemeta(str) {
15
- return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
16
- }
17
-
18
- ContextDependencyHelpers.create = function(Dep, range, param, expr, options, chunkName) {
19
- let dep;
20
- let prefix;
21
- let postfix;
22
- let prefixRange;
23
- let valueRange;
24
- let idx;
25
- let context;
26
- let regExp;
27
- if(param.isTemplateString()) {
28
- prefix = param.quasis[0].string;
29
- postfix = param.quasis.length > 1 ? param.quasis[param.quasis.length - 1].string : "";
30
- prefixRange = [param.quasis[0].range[0], param.quasis[0].range[1]];
31
- valueRange = param.range;
32
- idx = prefix.lastIndexOf("/");
33
- context = ".";
34
- if(idx >= 0) {
35
- context = prefix.substr(0, idx);
36
- prefix = `.${prefix.substr(idx)}`;
37
- }
38
- // If there are more than two quasis, maybe the generated RegExp can be more precise?
39
- regExp = new RegExp(`^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(postfix)}$`);
40
- dep = new Dep(context, options.wrappedContextRecursive, regExp, range, valueRange, chunkName);
41
- dep.loc = expr.loc;
42
- dep.replaces = [{
43
- range: prefixRange,
44
- value: prefix
45
- }];
46
- dep.critical = options.wrappedContextCritical && "a part of the request of a dependency is an expression";
47
- return dep;
48
- } else if(param.isWrapped() && (param.prefix && param.prefix.isString() || param.postfix && param.postfix.isString())) {
49
- prefix = param.prefix && param.prefix.isString() ? param.prefix.string : "";
50
- postfix = param.postfix && param.postfix.isString() ? param.postfix.string : "";
51
- prefixRange = param.prefix && param.prefix.isString() ? param.prefix.range : null;
52
- valueRange = [prefixRange ? prefixRange[1] : param.range[0], param.range[1]];
53
- idx = prefix.lastIndexOf("/");
54
- context = ".";
55
- if(idx >= 0) {
56
- context = prefix.substr(0, idx);
57
- prefix = `.${prefix.substr(idx)}`;
58
- }
59
- regExp = new RegExp(`^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(postfix)}$`);
60
- dep = new Dep(context, options.wrappedContextRecursive, regExp, range, valueRange, chunkName);
61
- dep.loc = expr.loc;
62
- dep.prepend = param.prefix && param.prefix.isString() ? prefix : null;
63
- dep.critical = options.wrappedContextCritical && "a part of the request of a dependency is an expression";
64
- return dep;
65
- } else {
66
- dep = new Dep(options.exprContextRequest, options.exprContextRecursive, options.exprContextRegExp, range, param.range, chunkName);
67
- dep.loc = expr.loc;
68
- dep.critical = options.exprContextCritical && "the request of a dependency is an expression";
69
- return dep;
70
- }
71
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const ContextDependencyHelpers = exports;
8
+
9
+ /**
10
+ * Escapes regular expression metacharacters
11
+ * @param {string} str String to quote
12
+ * @return {string} Escaped string
13
+ */
14
+ function quotemeta(str) {
15
+ return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
16
+ }
17
+
18
+ ContextDependencyHelpers.create = function(Dep, range, param, expr, options, chunkName) {
19
+ let dep;
20
+ let prefix;
21
+ let postfix;
22
+ let prefixRange;
23
+ let valueRange;
24
+ let idx;
25
+ let context;
26
+ let regExp;
27
+ if(param.isTemplateString()) {
28
+ prefix = param.quasis[0].string;
29
+ postfix = param.quasis.length > 1 ? param.quasis[param.quasis.length - 1].string : "";
30
+ prefixRange = [param.quasis[0].range[0], param.quasis[0].range[1]];
31
+ valueRange = param.range;
32
+ idx = prefix.lastIndexOf("/");
33
+ context = ".";
34
+ if(idx >= 0) {
35
+ context = prefix.substr(0, idx);
36
+ prefix = `.${prefix.substr(idx)}`;
37
+ }
38
+ // If there are more than two quasis, maybe the generated RegExp can be more precise?
39
+ regExp = new RegExp(`^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(postfix)}$`);
40
+ dep = new Dep(context, options.wrappedContextRecursive, regExp, range, valueRange, chunkName);
41
+ dep.loc = expr.loc;
42
+ dep.replaces = [{
43
+ range: prefixRange,
44
+ value: prefix
45
+ }];
46
+ dep.critical = options.wrappedContextCritical && "a part of the request of a dependency is an expression";
47
+ return dep;
48
+ } else if(param.isWrapped() && (param.prefix && param.prefix.isString() || param.postfix && param.postfix.isString())) {
49
+ prefix = param.prefix && param.prefix.isString() ? param.prefix.string : "";
50
+ postfix = param.postfix && param.postfix.isString() ? param.postfix.string : "";
51
+ prefixRange = param.prefix && param.prefix.isString() ? param.prefix.range : null;
52
+ valueRange = [prefixRange ? prefixRange[1] : param.range[0], param.range[1]];
53
+ idx = prefix.lastIndexOf("/");
54
+ context = ".";
55
+ if(idx >= 0) {
56
+ context = prefix.substr(0, idx);
57
+ prefix = `.${prefix.substr(idx)}`;
58
+ }
59
+ regExp = new RegExp(`^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(postfix)}$`);
60
+ dep = new Dep(context, options.wrappedContextRecursive, regExp, range, valueRange, chunkName);
61
+ dep.loc = expr.loc;
62
+ dep.prepend = param.prefix && param.prefix.isString() ? prefix : null;
63
+ dep.critical = options.wrappedContextCritical && "a part of the request of a dependency is an expression";
64
+ return dep;
65
+ } else {
66
+ dep = new Dep(options.exprContextRequest, options.exprContextRecursive, options.exprContextRegExp, range, param.range, chunkName);
67
+ dep.loc = expr.loc;
68
+ dep.critical = options.exprContextCritical && "the request of a dependency is an expression";
69
+ return dep;
70
+ }
71
+ };
@@ -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
- const ModuleDependency = require("./ModuleDependency");
7
-
8
- class ContextElementDependency extends ModuleDependency {
9
- constructor(request, userRequest) {
10
- super(request);
11
- if(userRequest) {
12
- this.userRequest = userRequest;
13
- }
14
- }
15
-
16
- get type() {
17
- return "context element";
18
- }
19
- }
20
-
21
- module.exports = ContextElementDependency;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const ModuleDependency = require("./ModuleDependency");
7
+
8
+ class ContextElementDependency extends ModuleDependency {
9
+ constructor(request, userRequest) {
10
+ super(request);
11
+ if(userRequest) {
12
+ this.userRequest = userRequest;
13
+ }
14
+ }
15
+
16
+ get type() {
17
+ return "context element";
18
+ }
19
+ }
20
+
21
+ module.exports = ContextElementDependency;
@@ -1,20 +1,20 @@
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
-
9
- class CriticalDependencyWarning extends WebpackError {
10
- constructor(message) {
11
- super();
12
-
13
- this.name = "CriticalDependencyWarning";
14
- this.message = "Critical dependency: " + message;
15
-
16
- Error.captureStackTrace(this, this.constructor);
17
- }
18
- }
19
-
20
- module.exports = CriticalDependencyWarning;
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
+
9
+ class CriticalDependencyWarning extends WebpackError {
10
+ constructor(message) {
11
+ super();
12
+
13
+ this.name = "CriticalDependencyWarning";
14
+ this.message = "Critical dependency: " + message;
15
+
16
+ Error.captureStackTrace(this, this.constructor);
17
+ }
18
+ }
19
+
20
+ module.exports = CriticalDependencyWarning;
@@ -1,33 +1,33 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- const NullDependency = require("./NullDependency");
7
-
8
- class DelegatedExportsDependency extends NullDependency {
9
- constructor(originModule, exports) {
10
- super();
11
- this.originModule = originModule;
12
- this.exports = exports;
13
- }
14
-
15
- get type() {
16
- return "delegated exports";
17
- }
18
-
19
- getReference() {
20
- return {
21
- module: this.originModule,
22
- importedNames: true
23
- };
24
- }
25
-
26
- getExports() {
27
- return {
28
- exports: this.exports
29
- };
30
- }
31
- }
32
-
33
- module.exports = DelegatedExportsDependency;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const NullDependency = require("./NullDependency");
7
+
8
+ class DelegatedExportsDependency extends NullDependency {
9
+ constructor(originModule, exports) {
10
+ super();
11
+ this.originModule = originModule;
12
+ this.exports = exports;
13
+ }
14
+
15
+ get type() {
16
+ return "delegated exports";
17
+ }
18
+
19
+ getReference() {
20
+ return {
21
+ module: this.originModule,
22
+ importedNames: true
23
+ };
24
+ }
25
+
26
+ getExports() {
27
+ return {
28
+ exports: this.exports
29
+ };
30
+ }
31
+ }
32
+
33
+ module.exports = DelegatedExportsDependency;
@@ -1,18 +1,18 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- const ModuleDependency = require("./ModuleDependency");
7
-
8
- class DelegatedSourceDependency extends ModuleDependency {
9
- constructor(request) {
10
- super(request);
11
- }
12
-
13
- get type() {
14
- return "delegated source";
15
- }
16
- }
17
-
18
- module.exports = DelegatedSourceDependency;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const ModuleDependency = require("./ModuleDependency");
7
+
8
+ class DelegatedSourceDependency extends ModuleDependency {
9
+ constructor(request) {
10
+ super(request);
11
+ }
12
+
13
+ get type() {
14
+ return "delegated source";
15
+ }
16
+ }
17
+
18
+ module.exports = DelegatedSourceDependency;
@@ -1,20 +1,20 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- const Dependency = require("../Dependency");
7
-
8
- class DllEntryDependency extends Dependency {
9
- constructor(dependencies, name) {
10
- super();
11
- this.dependencies = dependencies;
12
- this.name = name;
13
- }
14
-
15
- get type() {
16
- return "dll entry";
17
- }
18
- }
19
-
20
- module.exports = DllEntryDependency;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const Dependency = require("../Dependency");
7
+
8
+ class DllEntryDependency extends Dependency {
9
+ constructor(dependencies, name) {
10
+ super();
11
+ this.dependencies = dependencies;
12
+ this.name = name;
13
+ }
14
+
15
+ get type() {
16
+ return "dll entry";
17
+ }
18
+ }
19
+
20
+ module.exports = DllEntryDependency;