webpack 4.15.0 → 4.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +761 -758
  3. package/SECURITY.md +9 -9
  4. package/buildin/amd-define.js +3 -3
  5. package/buildin/amd-options.js +2 -2
  6. package/buildin/global.js +20 -20
  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/dev-server.js +61 -61
  11. package/hot/emitter.js +2 -2
  12. package/hot/log-apply-result.js +44 -44
  13. package/hot/log.js +45 -45
  14. package/hot/only-dev-server.js +105 -105
  15. package/hot/poll.js +40 -37
  16. package/hot/signal.js +62 -62
  17. package/lib/APIPlugin.js +84 -84
  18. package/lib/AmdMainTemplatePlugin.js +87 -87
  19. package/lib/AsyncDependencyToInitialChunkError.js +31 -31
  20. package/lib/AutomaticPrefetchPlugin.js +1 -1
  21. package/lib/BannerPlugin.js +117 -117
  22. package/lib/BasicEvaluatedExpression.js +211 -211
  23. package/lib/CachePlugin.js +102 -102
  24. package/lib/CaseSensitiveModulesWarning.js +67 -67
  25. package/lib/Chunk.js +833 -811
  26. package/lib/ChunkGroup.js +4 -4
  27. package/lib/ChunkRenderError.js +32 -32
  28. package/lib/CommentCompilationWarning.js +2 -2
  29. package/lib/CompatibilityPlugin.js +70 -70
  30. package/lib/Compilation.js +46 -15
  31. package/lib/ConcurrentCompilationError.js +19 -19
  32. package/lib/ConstPlugin.js +258 -258
  33. package/lib/ContextExclusionPlugin.js +28 -17
  34. package/lib/ContextModule.js +844 -739
  35. package/lib/ContextModuleFactory.js +262 -256
  36. package/lib/ContextReplacementPlugin.js +133 -133
  37. package/lib/DefinePlugin.js +49 -0
  38. package/lib/DelegatedModule.js +5 -0
  39. package/lib/DelegatedModuleFactoryPlugin.js +95 -89
  40. package/lib/DelegatedPlugin.js +39 -39
  41. package/lib/DependenciesBlock.js +1 -1
  42. package/lib/Dependency.js +10 -4
  43. package/lib/DllModule.js +60 -54
  44. package/lib/DllModuleFactory.js +29 -29
  45. package/lib/DllPlugin.js +44 -44
  46. package/lib/DllReferencePlugin.js +132 -84
  47. package/lib/EntryModuleNotFoundError.js +21 -21
  48. package/lib/Entrypoint.js +54 -54
  49. package/lib/EnvironmentPlugin.js +72 -65
  50. package/lib/ErrorHelpers.js +60 -60
  51. package/lib/EvalDevToolModulePlugin.js +27 -27
  52. package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +115 -115
  53. package/lib/EvalSourceMapDevToolPlugin.js +41 -41
  54. package/lib/ExportPropertyMainTemplatePlugin.js +53 -53
  55. package/lib/ExternalModule.js +165 -159
  56. package/lib/ExternalsPlugin.js +23 -23
  57. package/lib/FlagDependencyExportsPlugin.js +146 -146
  58. package/lib/FlagInitialModulesAsUsedPlugin.js +36 -36
  59. package/lib/FunctionModuleTemplatePlugin.js +100 -100
  60. package/lib/Generator.js +60 -52
  61. package/lib/HarmonyLinkingError.js +17 -17
  62. package/lib/HashedModuleIdsPlugin.js +53 -53
  63. package/lib/HotModuleReplacementPlugin.js +411 -413
  64. package/lib/IgnorePlugin.js +90 -90
  65. package/lib/JavascriptGenerator.js +229 -229
  66. package/lib/JavascriptModulesPlugin.js +179 -179
  67. package/lib/JsonGenerator.js +55 -55
  68. package/lib/JsonModulesPlugin.js +30 -30
  69. package/lib/JsonParser.js +27 -27
  70. package/lib/LibManifestPlugin.js +86 -86
  71. package/lib/LibraryTemplatePlugin.js +153 -153
  72. package/lib/LoaderOptionsPlugin.js +53 -53
  73. package/lib/LoaderTargetPlugin.js +24 -24
  74. package/lib/MemoryOutputFileSystem.js +5 -5
  75. package/lib/Module.js +431 -391
  76. package/lib/ModuleBuildError.js +52 -52
  77. package/lib/ModuleDependencyError.js +35 -35
  78. package/lib/ModuleDependencyWarning.js +25 -25
  79. package/lib/ModuleError.js +36 -36
  80. package/lib/ModuleFilenameHelpers.js +178 -178
  81. package/lib/ModuleNotFoundError.js +23 -23
  82. package/lib/ModuleParseError.js +57 -57
  83. package/lib/ModuleTemplate.js +93 -93
  84. package/lib/ModuleWarning.js +36 -36
  85. package/lib/MultiCompiler.js +283 -283
  86. package/lib/MultiModule.js +87 -81
  87. package/lib/MultiModuleFactory.js +23 -23
  88. package/lib/MultiStats.js +92 -92
  89. package/lib/MultiWatching.js +38 -38
  90. package/lib/NamedChunksPlugin.js +29 -29
  91. package/lib/NamedModulesPlugin.js +57 -57
  92. package/lib/NoEmitOnErrorsPlugin.js +20 -20
  93. package/lib/NoModeWarning.js +23 -23
  94. package/lib/NodeStuffPlugin.js +197 -179
  95. package/lib/NormalModule.js +542 -536
  96. package/lib/NormalModuleFactory.js +526 -526
  97. package/lib/NormalModuleReplacementPlugin.js +51 -51
  98. package/lib/NullFactory.js +12 -12
  99. package/lib/OptionsApply.js +10 -10
  100. package/lib/OptionsDefaulter.js +84 -84
  101. package/lib/Parser.js +2202 -2193
  102. package/lib/ParserHelpers.js +103 -103
  103. package/lib/PrefetchPlugin.js +37 -37
  104. package/lib/ProgressPlugin.js +246 -246
  105. package/lib/ProvidePlugin.js +86 -86
  106. package/lib/RawModule.js +56 -56
  107. package/lib/RecordIdsPlugin.js +230 -230
  108. package/lib/RemovedPluginError.js +11 -11
  109. package/lib/RequestShortener.js +83 -83
  110. package/lib/RequireJsStuffPlugin.js +69 -69
  111. package/lib/ResolverFactory.js +64 -64
  112. package/lib/RuntimeTemplate.js +12 -0
  113. package/lib/SetVarMainTemplatePlugin.js +69 -69
  114. package/lib/SingleEntryPlugin.js +6 -1
  115. package/lib/SizeFormatHelpers.js +24 -24
  116. package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -49
  117. package/lib/SourceMapDevToolPlugin.js +301 -301
  118. package/lib/Stats.js +28 -5
  119. package/lib/TemplatedPathPlugin.js +173 -173
  120. package/lib/UnsupportedFeatureWarning.js +22 -22
  121. package/lib/UseStrictPlugin.js +54 -54
  122. package/lib/WarnCaseSensitiveModulesPlugin.js +37 -37
  123. package/lib/WarnNoModeSetPlugin.js +17 -17
  124. package/lib/WatchIgnorePlugin.js +100 -100
  125. package/lib/Watching.js +194 -194
  126. package/lib/WebpackOptionsApply.js +92 -10
  127. package/lib/WebpackOptionsDefaulter.js +368 -354
  128. package/lib/debug/ProfilingPlugin.js +430 -430
  129. package/lib/dependencies/AMDPlugin.js +250 -250
  130. package/lib/dependencies/AMDRequireArrayDependency.js +49 -49
  131. package/lib/dependencies/AMDRequireContextDependency.js +20 -20
  132. package/lib/dependencies/AMDRequireDependency.js +135 -135
  133. package/lib/dependencies/AMDRequireItemDependency.js +22 -22
  134. package/lib/dependencies/CommonJsPlugin.js +161 -161
  135. package/lib/dependencies/CommonJsRequireContextDependency.js +23 -23
  136. package/lib/dependencies/CommonJsRequireDependency.js +22 -22
  137. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +6 -0
  138. package/lib/dependencies/ConstDependency.js +33 -33
  139. package/lib/dependencies/ContextDependency.js +68 -68
  140. package/lib/dependencies/ContextDependencyHelpers.js +142 -142
  141. package/lib/dependencies/ContextDependencyTemplateAsId.js +42 -42
  142. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +38 -38
  143. package/lib/dependencies/ContextElementDependency.js +21 -21
  144. package/lib/dependencies/CriticalDependencyWarning.js +20 -20
  145. package/lib/dependencies/DelegatedSourceDependency.js +18 -18
  146. package/lib/dependencies/DllEntryDependency.js +20 -20
  147. package/lib/dependencies/HarmonyAcceptDependency.js +45 -45
  148. package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -31
  149. package/lib/dependencies/HarmonyDetectionParserPlugin.js +92 -92
  150. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +139 -139
  151. package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -30
  152. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +2 -1
  153. package/lib/dependencies/HarmonyImportDependency.js +109 -109
  154. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +222 -222
  155. package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -31
  156. package/lib/dependencies/HarmonyImportSpecifierDependency.js +167 -167
  157. package/lib/dependencies/HarmonyInitDependency.js +60 -60
  158. package/lib/dependencies/HarmonyModulesPlugin.js +146 -146
  159. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +26 -26
  160. package/lib/dependencies/ImportContextDependency.js +23 -23
  161. package/lib/dependencies/ImportDependenciesBlock.js +18 -18
  162. package/lib/dependencies/ImportDependency.js +34 -34
  163. package/lib/dependencies/ImportEagerDependency.js +32 -32
  164. package/lib/dependencies/ImportParserPlugin.js +263 -263
  165. package/lib/dependencies/ImportPlugin.js +82 -82
  166. package/lib/dependencies/ImportWeakDependency.js +34 -34
  167. package/lib/dependencies/LoaderPlugin.js +18 -1
  168. package/lib/dependencies/LocalModule.js +23 -23
  169. package/lib/dependencies/LocalModulesHelpers.js +52 -52
  170. package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -17
  171. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -17
  172. package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
  173. package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
  174. package/lib/dependencies/NullDependency.js +20 -20
  175. package/lib/dependencies/PrefetchDependency.js +18 -18
  176. package/lib/dependencies/RequireContextDependency.js +22 -22
  177. package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -56
  178. package/lib/dependencies/RequireContextPlugin.js +143 -143
  179. package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -33
  180. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -116
  181. package/lib/dependencies/RequireEnsureDependency.js +58 -58
  182. package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
  183. package/lib/dependencies/RequireEnsurePlugin.js +74 -74
  184. package/lib/dependencies/RequireHeaderDependency.js +26 -26
  185. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -23
  186. package/lib/dependencies/RequireIncludePlugin.js +61 -61
  187. package/lib/dependencies/RequireResolveContextDependency.js +23 -23
  188. package/lib/dependencies/RequireResolveDependency.js +22 -22
  189. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +85 -85
  190. package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
  191. package/lib/dependencies/SystemPlugin.js +125 -125
  192. package/lib/dependencies/UnsupportedDependency.js +27 -27
  193. package/lib/dependencies/WebAssemblyExportImportedDependency.js +29 -29
  194. package/lib/dependencies/WebAssemblyImportDependency.js +48 -48
  195. package/lib/dependencies/WebpackMissingModule.js +20 -20
  196. package/lib/formatLocation.js +75 -61
  197. package/lib/node/NodeChunkTemplatePlugin.js +31 -31
  198. package/lib/node/NodeEnvironmentPlugin.js +28 -28
  199. package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +36 -36
  200. package/lib/node/NodeMainTemplate.runtime.js +27 -27
  201. package/lib/node/NodeMainTemplatePlugin.js +323 -323
  202. package/lib/node/NodeOutputFileSystem.js +22 -22
  203. package/lib/node/NodeSourcePlugin.js +144 -144
  204. package/lib/node/NodeTargetPlugin.js +18 -18
  205. package/lib/node/NodeTemplatePlugin.js +31 -31
  206. package/lib/node/NodeWatchFileSystem.js +99 -99
  207. package/lib/node/ReadFileCompileWasmTemplatePlugin.js +61 -61
  208. package/lib/optimize/AggressiveMergingPlugin.js +87 -87
  209. package/lib/optimize/AggressiveSplittingPlugin.js +287 -287
  210. package/lib/optimize/ConcatenatedModule.js +5 -0
  211. package/lib/optimize/EnsureChunkConditionsPlugin.js +70 -70
  212. package/lib/optimize/FlagIncludedChunksPlugin.js +99 -99
  213. package/lib/optimize/LimitChunkCountPlugin.js +66 -66
  214. package/lib/optimize/MergeDuplicateChunksPlugin.js +78 -78
  215. package/lib/optimize/MinChunkSizePlugin.js +77 -77
  216. package/lib/optimize/NaturalChunkOrderPlugin.js +41 -0
  217. package/lib/optimize/OccurrenceChunkOrderPlugin.js +61 -0
  218. package/lib/optimize/OccurrenceModuleOrderPlugin.js +103 -0
  219. package/lib/optimize/OccurrenceOrderPlugin.js +135 -133
  220. package/lib/optimize/RemoveEmptyChunksPlugin.js +42 -42
  221. package/lib/optimize/RemoveParentModulesPlugin.js +127 -127
  222. package/lib/optimize/RuntimeChunkPlugin.js +41 -41
  223. package/lib/optimize/SideEffectsFlagPlugin.js +168 -168
  224. package/lib/optimize/SplitChunksPlugin.js +866 -850
  225. package/lib/performance/AssetsOverSizeLimitWarning.js +30 -30
  226. package/lib/performance/EntrypointsOverSizeLimitWarning.js +30 -30
  227. package/lib/performance/NoAsyncChunksWarning.js +21 -21
  228. package/lib/performance/SizeLimitsPlugin.js +105 -105
  229. package/lib/util/SortableSet.js +1 -0
  230. package/lib/util/StackedSetMap.js +144 -135
  231. package/lib/util/TrackingSet.js +35 -35
  232. package/lib/util/cachedMerge.js +35 -35
  233. package/lib/util/deterministicGrouping.js +251 -251
  234. package/lib/util/identifier.js +103 -103
  235. package/lib/util/objectToMap.js +16 -16
  236. package/lib/validateSchema.js +67 -67
  237. package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +17 -17
  238. package/lib/wasm/WasmFinalizeExportsPlugin.js +1 -1
  239. package/lib/wasm/WebAssemblyGenerator.js +16 -2
  240. package/lib/wasm/WebAssemblyJavascriptGenerator.js +147 -133
  241. package/lib/wasm/WebAssemblyParser.js +174 -174
  242. package/lib/wasm/WebAssemblyUtils.js +59 -59
  243. package/lib/web/FetchCompileWasmTemplatePlugin.js +37 -37
  244. package/lib/web/JsonpExportMainTemplatePlugin.js +47 -47
  245. package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -39
  246. package/lib/web/JsonpMainTemplate.runtime.js +65 -65
  247. package/lib/web/JsonpMainTemplatePlugin.js +1 -1
  248. package/lib/web/JsonpTemplatePlugin.js +23 -23
  249. package/lib/web/WebEnvironmentPlugin.js +18 -18
  250. package/lib/webpack.js +5 -0
  251. package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -35
  252. package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -40
  253. package/lib/webworker/WebWorkerMainTemplate.runtime.js +65 -65
  254. package/lib/webworker/WebWorkerMainTemplatePlugin.js +196 -196
  255. package/lib/webworker/WebWorkerTemplatePlugin.js +25 -25
  256. package/package.json +22 -13
  257. package/schemas/WebpackOptions.json +2062 -2036
  258. package/schemas/ajv.absolutePath.js +55 -55
  259. package/schemas/plugins/BannerPlugin.json +96 -96
  260. package/schemas/plugins/DllPlugin.json +32 -32
  261. package/schemas/plugins/DllReferencePlugin.json +99 -99
  262. package/schemas/plugins/HashedModuleIdsPlugin.json +24 -24
  263. package/schemas/plugins/LoaderOptionsPlugin.json +26 -26
  264. package/schemas/plugins/SourceMapDevToolPlugin.json +187 -187
  265. package/schemas/plugins/WatchIgnorePlugin.json +16 -16
  266. package/schemas/plugins/debug/ProfilingPlugin.json +12 -12
  267. package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +22 -22
  268. package/schemas/plugins/optimize/LimitChunkCountPlugin.json +15 -15
  269. package/schemas/plugins/optimize/MinChunkSizePlugin.json +13 -13
  270. package/schemas/plugins/optimize/OccurrenceOrderChunkIdsPlugin.json +10 -0
  271. package/schemas/plugins/optimize/OccurrenceOrderModuleIdsPlugin.json +10 -0
@@ -1,23 +1,23 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- const ContextDependency = require("./ContextDependency");
7
- const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
8
-
9
- class CommonJsRequireContextDependency extends ContextDependency {
10
- constructor(options, range, valueRange) {
11
- super(options);
12
- this.range = range;
13
- this.valueRange = valueRange;
14
- }
15
-
16
- get type() {
17
- return "cjs require context";
18
- }
19
- }
20
-
21
- CommonJsRequireContextDependency.Template = ContextDependencyTemplateAsRequireCall;
22
-
23
- module.exports = CommonJsRequireContextDependency;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const ContextDependency = require("./ContextDependency");
7
+ const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
8
+
9
+ class CommonJsRequireContextDependency extends ContextDependency {
10
+ constructor(options, range, valueRange) {
11
+ super(options);
12
+ this.range = range;
13
+ this.valueRange = valueRange;
14
+ }
15
+
16
+ get type() {
17
+ return "cjs require context";
18
+ }
19
+ }
20
+
21
+ CommonJsRequireContextDependency.Template = ContextDependencyTemplateAsRequireCall;
22
+
23
+ module.exports = CommonJsRequireContextDependency;
@@ -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
- const ModuleDependency = require("./ModuleDependency");
7
- const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
8
-
9
- class CommonJsRequireDependency extends ModuleDependency {
10
- constructor(request, range) {
11
- super(request);
12
- this.range = range;
13
- }
14
-
15
- get type() {
16
- return "cjs require";
17
- }
18
- }
19
-
20
- CommonJsRequireDependency.Template = ModuleDependencyTemplateAsId;
21
-
22
- module.exports = CommonJsRequireDependency;
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
+ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
8
+
9
+ class CommonJsRequireDependency extends ModuleDependency {
10
+ constructor(request, range) {
11
+ super(request);
12
+ this.range = range;
13
+ }
14
+
15
+ get type() {
16
+ return "cjs require";
17
+ }
18
+ }
19
+
20
+ CommonJsRequireDependency.Template = ModuleDependencyTemplateAsId;
21
+
22
+ module.exports = CommonJsRequireDependency;
@@ -125,6 +125,12 @@ class CommonJsRequireDependencyParserPlugin {
125
125
  parser.hooks.new
126
126
  .for("require")
127
127
  .tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
128
+ parser.hooks.call
129
+ .for("module.require")
130
+ .tap("CommonJsRequireDependencyParserPlugin", createHandler(false));
131
+ parser.hooks.new
132
+ .for("module.require")
133
+ .tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
128
134
  }
129
135
  }
130
136
  module.exports = CommonJsRequireDependencyParserPlugin;
@@ -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 ConstDependency extends NullDependency {
9
- constructor(expression, range, requireWebpackRequire) {
10
- super();
11
- this.expression = expression;
12
- this.range = range;
13
- this.requireWebpackRequire = requireWebpackRequire;
14
- }
15
-
16
- updateHash(hash) {
17
- hash.update(this.range + "");
18
- hash.update(this.expression + "");
19
- }
20
- }
21
-
22
- ConstDependency.Template = class ConstDependencyTemplate {
23
- apply(dep, source) {
24
- if (typeof dep.range === "number") {
25
- source.insert(dep.range, dep.expression);
26
- return;
27
- }
28
-
29
- source.replace(dep.range[0], dep.range[1] - 1, dep.expression);
30
- }
31
- };
32
-
33
- 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, requireWebpackRequire) {
10
+ super();
11
+ this.expression = expression;
12
+ this.range = range;
13
+ this.requireWebpackRequire = requireWebpackRequire;
14
+ }
15
+
16
+ updateHash(hash) {
17
+ hash.update(this.range + "");
18
+ hash.update(this.expression + "");
19
+ }
20
+ }
21
+
22
+ ConstDependency.Template = class ConstDependencyTemplate {
23
+ apply(dep, source) {
24
+ if (typeof dep.range === "number") {
25
+ source.insert(dep.range, dep.expression);
26
+ return;
27
+ }
28
+
29
+ source.replace(dep.range[0], dep.range[1] - 1, dep.expression);
30
+ }
31
+ };
32
+
33
+ module.exports = ConstDependency;
@@ -1,68 +1,68 @@
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
- const CriticalDependencyWarning = require("./CriticalDependencyWarning");
8
-
9
- const regExpToString = r => (r ? r + "" : "");
10
-
11
- class ContextDependency extends Dependency {
12
- // options: { request, recursive, regExp, include, exclude, mode, chunkName, groupOptions }
13
- constructor(options) {
14
- super();
15
- this.options = options;
16
- this.userRequest = this.options.request;
17
- /** @type {false | string} */
18
- this.critical = false;
19
- this.hadGlobalOrStickyRegExp = false;
20
- if (this.options.regExp.global || this.options.regExp.sticky) {
21
- this.options.regExp = null;
22
- this.hadGlobalOrStickyRegExp = true;
23
- }
24
- }
25
-
26
- getResourceIdentifier() {
27
- return (
28
- `context${this.options.request} ${this.options.recursive} ` +
29
- `${regExpToString(this.options.regExp)} ${regExpToString(
30
- this.options.include
31
- )} ${regExpToString(this.options.exclude)} ` +
32
- `${this.options.mode} ${this.options.chunkName} ` +
33
- `${JSON.stringify(this.options.groupOptions)}`
34
- );
35
- }
36
-
37
- getWarnings() {
38
- let warnings = super.getWarnings() || [];
39
- if (this.critical) {
40
- warnings.push(new CriticalDependencyWarning(this.critical));
41
- }
42
- if (this.hadGlobalOrStickyRegExp) {
43
- warnings.push(
44
- new CriticalDependencyWarning(
45
- "Contexts can't use RegExps with the 'g' or 'y' flags."
46
- )
47
- );
48
- }
49
- return warnings;
50
- }
51
- }
52
-
53
- // TODO remove in webpack 5
54
- Object.defineProperty(ContextDependency.prototype, "async", {
55
- configurable: false,
56
- get() {
57
- throw new Error(
58
- "ContextDependency.async was removed. Use ContextDependency.options.mode instead."
59
- );
60
- },
61
- set() {
62
- throw new Error(
63
- "ContextDependency.async was removed. Pass options.mode to constructor instead"
64
- );
65
- }
66
- });
67
-
68
- module.exports = ContextDependency;
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
+ const CriticalDependencyWarning = require("./CriticalDependencyWarning");
8
+
9
+ const regExpToString = r => (r ? r + "" : "");
10
+
11
+ class ContextDependency extends Dependency {
12
+ // options: { request, recursive, regExp, include, exclude, mode, chunkName, groupOptions }
13
+ constructor(options) {
14
+ super();
15
+ this.options = options;
16
+ this.userRequest = this.options.request;
17
+ /** @type {false | string} */
18
+ this.critical = false;
19
+ this.hadGlobalOrStickyRegExp = false;
20
+ if (this.options.regExp.global || this.options.regExp.sticky) {
21
+ this.options.regExp = null;
22
+ this.hadGlobalOrStickyRegExp = true;
23
+ }
24
+ }
25
+
26
+ getResourceIdentifier() {
27
+ return (
28
+ `context${this.options.request} ${this.options.recursive} ` +
29
+ `${regExpToString(this.options.regExp)} ${regExpToString(
30
+ this.options.include
31
+ )} ${regExpToString(this.options.exclude)} ` +
32
+ `${this.options.mode} ${this.options.chunkName} ` +
33
+ `${JSON.stringify(this.options.groupOptions)}`
34
+ );
35
+ }
36
+
37
+ getWarnings() {
38
+ let warnings = super.getWarnings() || [];
39
+ if (this.critical) {
40
+ warnings.push(new CriticalDependencyWarning(this.critical));
41
+ }
42
+ if (this.hadGlobalOrStickyRegExp) {
43
+ warnings.push(
44
+ new CriticalDependencyWarning(
45
+ "Contexts can't use RegExps with the 'g' or 'y' flags."
46
+ )
47
+ );
48
+ }
49
+ return warnings;
50
+ }
51
+ }
52
+
53
+ // TODO remove in webpack 5
54
+ Object.defineProperty(ContextDependency.prototype, "async", {
55
+ configurable: false,
56
+ get() {
57
+ throw new Error(
58
+ "ContextDependency.async was removed. Use ContextDependency.options.mode instead."
59
+ );
60
+ },
61
+ set() {
62
+ throw new Error(
63
+ "ContextDependency.async was removed. Pass options.mode to constructor instead"
64
+ );
65
+ }
66
+ });
67
+
68
+ module.exports = ContextDependency;
@@ -1,142 +1,142 @@
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
- * @returns {string} Escaped string
13
- */
14
- const quotemeta = str => {
15
- return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
16
- };
17
-
18
- ContextDependencyHelpers.create = (
19
- Dep,
20
- range,
21
- param,
22
- expr,
23
- options,
24
- contextOptions
25
- ) => {
26
- let dep;
27
- let prefix;
28
- let postfix;
29
- let prefixRange;
30
- let valueRange;
31
- let idx;
32
- let context;
33
- let regExp;
34
- if (param.isTemplateString()) {
35
- prefix = param.quasis[0].string;
36
- postfix =
37
- param.quasis.length > 1
38
- ? param.quasis[param.quasis.length - 1].string
39
- : "";
40
- prefixRange = [param.quasis[0].range[0], param.quasis[0].range[1]];
41
- valueRange = param.range;
42
- idx = prefix.lastIndexOf("/");
43
- context = ".";
44
- if (idx >= 0) {
45
- context = prefix.substr(0, idx);
46
- prefix = `.${prefix.substr(idx)}`;
47
- }
48
- // If there are more than two quasis, maybe the generated RegExp can be more precise?
49
- regExp = new RegExp(
50
- `^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
51
- postfix
52
- )}$`
53
- );
54
- dep = new Dep(
55
- Object.assign(
56
- {
57
- request: context,
58
- recursive: options.wrappedContextRecursive,
59
- regExp,
60
- mode: "sync"
61
- },
62
- contextOptions
63
- ),
64
- range,
65
- valueRange
66
- );
67
- dep.loc = expr.loc;
68
- dep.replaces = [
69
- {
70
- range: prefixRange,
71
- value: prefix
72
- }
73
- ];
74
- dep.critical =
75
- options.wrappedContextCritical &&
76
- "a part of the request of a dependency is an expression";
77
- return dep;
78
- } else if (
79
- param.isWrapped() &&
80
- ((param.prefix && param.prefix.isString()) ||
81
- (param.postfix && param.postfix.isString()))
82
- ) {
83
- prefix = param.prefix && param.prefix.isString() ? param.prefix.string : "";
84
- postfix =
85
- param.postfix && param.postfix.isString() ? param.postfix.string : "";
86
- prefixRange =
87
- param.prefix && param.prefix.isString() ? param.prefix.range : null;
88
- valueRange = [
89
- prefixRange ? prefixRange[1] : param.range[0],
90
- param.range[1]
91
- ];
92
- idx = prefix.lastIndexOf("/");
93
- context = ".";
94
- if (idx >= 0) {
95
- context = prefix.substr(0, idx);
96
- prefix = `.${prefix.substr(idx)}`;
97
- }
98
- regExp = new RegExp(
99
- `^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
100
- postfix
101
- )}$`
102
- );
103
- dep = new Dep(
104
- Object.assign(
105
- {
106
- request: context,
107
- recursive: options.wrappedContextRecursive,
108
- regExp,
109
- mode: "sync"
110
- },
111
- contextOptions
112
- ),
113
- range,
114
- valueRange
115
- );
116
- dep.loc = expr.loc;
117
- dep.prepend = param.prefix && param.prefix.isString() ? prefix : null;
118
- dep.critical =
119
- options.wrappedContextCritical &&
120
- "a part of the request of a dependency is an expression";
121
- return dep;
122
- } else {
123
- dep = new Dep(
124
- Object.assign(
125
- {
126
- request: options.exprContextRequest,
127
- recursive: options.exprContextRecursive,
128
- regExp: options.exprContextRegExp,
129
- mode: "sync"
130
- },
131
- contextOptions
132
- ),
133
- range,
134
- param.range
135
- );
136
- dep.loc = expr.loc;
137
- dep.critical =
138
- options.exprContextCritical &&
139
- "the request of a dependency is an expression";
140
- return dep;
141
- }
142
- };
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
+ * @returns {string} Escaped string
13
+ */
14
+ const quotemeta = str => {
15
+ return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
16
+ };
17
+
18
+ ContextDependencyHelpers.create = (
19
+ Dep,
20
+ range,
21
+ param,
22
+ expr,
23
+ options,
24
+ contextOptions
25
+ ) => {
26
+ let dep;
27
+ let prefix;
28
+ let postfix;
29
+ let prefixRange;
30
+ let valueRange;
31
+ let idx;
32
+ let context;
33
+ let regExp;
34
+ if (param.isTemplateString()) {
35
+ prefix = param.quasis[0].string;
36
+ postfix =
37
+ param.quasis.length > 1
38
+ ? param.quasis[param.quasis.length - 1].string
39
+ : "";
40
+ prefixRange = [param.quasis[0].range[0], param.quasis[0].range[1]];
41
+ valueRange = param.range;
42
+ idx = prefix.lastIndexOf("/");
43
+ context = ".";
44
+ if (idx >= 0) {
45
+ context = prefix.substr(0, idx);
46
+ prefix = `.${prefix.substr(idx)}`;
47
+ }
48
+ // If there are more than two quasis, maybe the generated RegExp can be more precise?
49
+ regExp = new RegExp(
50
+ `^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
51
+ postfix
52
+ )}$`
53
+ );
54
+ dep = new Dep(
55
+ Object.assign(
56
+ {
57
+ request: context,
58
+ recursive: options.wrappedContextRecursive,
59
+ regExp,
60
+ mode: "sync"
61
+ },
62
+ contextOptions
63
+ ),
64
+ range,
65
+ valueRange
66
+ );
67
+ dep.loc = expr.loc;
68
+ dep.replaces = [
69
+ {
70
+ range: prefixRange,
71
+ value: prefix
72
+ }
73
+ ];
74
+ dep.critical =
75
+ options.wrappedContextCritical &&
76
+ "a part of the request of a dependency is an expression";
77
+ return dep;
78
+ } else if (
79
+ param.isWrapped() &&
80
+ ((param.prefix && param.prefix.isString()) ||
81
+ (param.postfix && param.postfix.isString()))
82
+ ) {
83
+ prefix = param.prefix && param.prefix.isString() ? param.prefix.string : "";
84
+ postfix =
85
+ param.postfix && param.postfix.isString() ? param.postfix.string : "";
86
+ prefixRange =
87
+ param.prefix && param.prefix.isString() ? param.prefix.range : null;
88
+ valueRange = [
89
+ prefixRange ? prefixRange[1] : param.range[0],
90
+ param.range[1]
91
+ ];
92
+ idx = prefix.lastIndexOf("/");
93
+ context = ".";
94
+ if (idx >= 0) {
95
+ context = prefix.substr(0, idx);
96
+ prefix = `.${prefix.substr(idx)}`;
97
+ }
98
+ regExp = new RegExp(
99
+ `^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
100
+ postfix
101
+ )}$`
102
+ );
103
+ dep = new Dep(
104
+ Object.assign(
105
+ {
106
+ request: context,
107
+ recursive: options.wrappedContextRecursive,
108
+ regExp,
109
+ mode: "sync"
110
+ },
111
+ contextOptions
112
+ ),
113
+ range,
114
+ valueRange
115
+ );
116
+ dep.loc = expr.loc;
117
+ dep.prepend = param.prefix && param.prefix.isString() ? prefix : null;
118
+ dep.critical =
119
+ options.wrappedContextCritical &&
120
+ "a part of the request of a dependency is an expression";
121
+ return dep;
122
+ } else {
123
+ dep = new Dep(
124
+ Object.assign(
125
+ {
126
+ request: options.exprContextRequest,
127
+ recursive: options.exprContextRecursive,
128
+ regExp: options.exprContextRegExp,
129
+ mode: "sync"
130
+ },
131
+ contextOptions
132
+ ),
133
+ range,
134
+ param.range
135
+ );
136
+ dep.loc = expr.loc;
137
+ dep.critical =
138
+ options.exprContextCritical &&
139
+ "the request of a dependency is an expression";
140
+ return dep;
141
+ }
142
+ };
@@ -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
- class ContextDependencyTemplateAsId {
8
- apply(dep, source, runtime) {
9
- const moduleExports = runtime.moduleExports({
10
- module: dep.module,
11
- request: dep.request
12
- });
13
-
14
- if (dep.module) {
15
- if (dep.valueRange) {
16
- if (Array.isArray(dep.replaces)) {
17
- for (let i = 0; i < dep.replaces.length; i++) {
18
- const rep = dep.replaces[i];
19
- source.replace(rep.range[0], rep.range[1] - 1, rep.value);
20
- }
21
- }
22
- source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
23
- source.replace(
24
- dep.range[0],
25
- dep.valueRange[0] - 1,
26
- `${moduleExports}.resolve(${
27
- typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : ""
28
- }`
29
- );
30
- } else {
31
- source.replace(
32
- dep.range[0],
33
- dep.range[1] - 1,
34
- `${moduleExports}.resolve`
35
- );
36
- }
37
- } else {
38
- source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
39
- }
40
- }
41
- }
42
- module.exports = ContextDependencyTemplateAsId;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class ContextDependencyTemplateAsId {
8
+ apply(dep, source, runtime) {
9
+ const moduleExports = runtime.moduleExports({
10
+ module: dep.module,
11
+ request: dep.request
12
+ });
13
+
14
+ if (dep.module) {
15
+ if (dep.valueRange) {
16
+ if (Array.isArray(dep.replaces)) {
17
+ for (let i = 0; i < dep.replaces.length; i++) {
18
+ const rep = dep.replaces[i];
19
+ source.replace(rep.range[0], rep.range[1] - 1, rep.value);
20
+ }
21
+ }
22
+ source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
23
+ source.replace(
24
+ dep.range[0],
25
+ dep.valueRange[0] - 1,
26
+ `${moduleExports}.resolve(${
27
+ typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : ""
28
+ }`
29
+ );
30
+ } else {
31
+ source.replace(
32
+ dep.range[0],
33
+ dep.range[1] - 1,
34
+ `${moduleExports}.resolve`
35
+ );
36
+ }
37
+ } else {
38
+ source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
39
+ }
40
+ }
41
+ }
42
+ module.exports = ContextDependencyTemplateAsId;