webpack 3.6.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 (229) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +716 -716
  3. package/bin/convert-argv.js +1 -1
  4. package/bin/webpack.js +6 -0
  5. package/buildin/.eslintrc +7 -7
  6. package/buildin/amd-define.js +3 -3
  7. package/buildin/amd-options.js +2 -2
  8. package/buildin/global.js +21 -21
  9. package/buildin/harmony-module.js +24 -24
  10. package/buildin/module.js +22 -22
  11. package/buildin/system.js +7 -7
  12. package/hot/.eslintrc +9 -9
  13. package/hot/dev-server.js +53 -53
  14. package/hot/emitter.js +2 -2
  15. package/hot/log-apply-result.js +38 -38
  16. package/hot/log.js +44 -44
  17. package/hot/only-dev-server.js +71 -71
  18. package/hot/poll.js +34 -34
  19. package/hot/signal.js +51 -51
  20. package/lib/APIPlugin.js +45 -45
  21. package/lib/AsyncDependenciesBlock.js +43 -43
  22. package/lib/AsyncDependencyToInitialChunkWarning.js +21 -0
  23. package/lib/AutomaticPrefetchPlugin.js +36 -36
  24. package/lib/BasicEvaluatedExpression.js +203 -203
  25. package/lib/CaseSensitiveModulesWarning.js +49 -49
  26. package/lib/Chunk.js +3 -0
  27. package/lib/ChunkRenderError.js +24 -24
  28. package/lib/ChunkTemplate.js +36 -36
  29. package/lib/CompatibilityPlugin.js +57 -57
  30. package/lib/Compilation.js +158 -51
  31. package/lib/Compiler.js +523 -523
  32. package/lib/ConstPlugin.js +60 -60
  33. package/lib/ContextExclusionPlugin.js +17 -0
  34. package/lib/ContextModule.js +431 -431
  35. package/lib/ContextModuleFactory.js +14 -5
  36. package/lib/ContextReplacementPlugin.js +111 -111
  37. package/lib/DefinePlugin.js +123 -123
  38. package/lib/DelegatedModule.js +98 -92
  39. package/lib/DelegatedModuleFactoryPlugin.js +59 -59
  40. package/lib/DelegatedPlugin.js +30 -30
  41. package/lib/DependenciesBlockVariable.js +51 -51
  42. package/lib/DllEntryPlugin.js +37 -37
  43. package/lib/DllModule.js +58 -58
  44. package/lib/DllModuleFactory.js +20 -20
  45. package/lib/DllPlugin.js +38 -38
  46. package/lib/DllReferencePlugin.js +62 -62
  47. package/lib/DynamicEntryPlugin.js +59 -59
  48. package/lib/EntryModuleNotFoundError.js +22 -22
  49. package/lib/EntryOptionPlugin.js +31 -31
  50. package/lib/EnvironmentPlugin.js +50 -50
  51. package/lib/ErrorHelpers.js +31 -31
  52. package/lib/EvalDevToolModulePlugin.js +22 -22
  53. package/lib/EvalDevToolModuleTemplatePlugin.js +33 -33
  54. package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +75 -75
  55. package/lib/EvalSourceMapDevToolPlugin.js +32 -32
  56. package/lib/ExportPropertyMainTemplatePlugin.js +31 -31
  57. package/lib/ExtendedAPIPlugin.js +47 -47
  58. package/lib/ExternalModule.js +7 -0
  59. package/lib/ExternalModuleFactoryPlugin.js +91 -91
  60. package/lib/ExternalsPlugin.js +21 -21
  61. package/lib/FlagDependencyExportsPlugin.js +101 -101
  62. package/lib/FunctionModulePlugin.js +24 -24
  63. package/lib/FunctionModuleTemplatePlugin.js +7 -3
  64. package/lib/HashedModuleIdsPlugin.js +42 -42
  65. package/lib/HotUpdateChunkTemplate.js +31 -31
  66. package/lib/IgnorePlugin.js +69 -69
  67. package/lib/JsonpExportMainTemplatePlugin.js +37 -37
  68. package/lib/JsonpHotUpdateChunkTemplatePlugin.js +27 -27
  69. package/lib/JsonpMainTemplate.runtime.js +2 -1
  70. package/lib/JsonpMainTemplatePlugin.js +2 -0
  71. package/lib/JsonpTemplatePlugin.js +21 -21
  72. package/lib/LibManifestPlugin.js +63 -63
  73. package/lib/LibraryTemplatePlugin.js +92 -92
  74. package/lib/LoaderOptionsPlugin.js +36 -36
  75. package/lib/LoaderTargetPlugin.js +19 -19
  76. package/lib/MemoryOutputFileSystem.js +5 -5
  77. package/lib/ModuleBuildError.js +42 -42
  78. package/lib/ModuleDependencyError.js +22 -22
  79. package/lib/ModuleDependencyWarning.js +22 -22
  80. package/lib/ModuleError.js +24 -24
  81. package/lib/ModuleFilenameHelpers.js +162 -162
  82. package/lib/ModuleNotFoundError.js +26 -26
  83. package/lib/ModuleParseError.js +1 -1
  84. package/lib/ModuleReason.js +50 -50
  85. package/lib/ModuleTemplate.js +23 -23
  86. package/lib/ModuleWarning.js +24 -24
  87. package/lib/MovedToPluginWarningPlugin.js +21 -21
  88. package/lib/MultiCompiler.js +164 -164
  89. package/lib/MultiEntryPlugin.js +39 -39
  90. package/lib/MultiModuleFactory.js +19 -19
  91. package/lib/MultiStats.js +79 -79
  92. package/lib/MultiWatching.js +32 -32
  93. package/lib/NamedChunksPlugin.js +30 -30
  94. package/lib/NamedModulesPlugin.js +27 -27
  95. package/lib/NewWatchingPlugin.js +15 -15
  96. package/lib/NoEmitOnErrorsPlugin.js +22 -22
  97. package/lib/NoErrorsPlugin.js +29 -29
  98. package/lib/NodeStuffPlugin.js +97 -97
  99. package/lib/NormalModuleReplacementPlugin.js +45 -45
  100. package/lib/NullFactory.js +12 -12
  101. package/lib/OptionsApply.js +10 -10
  102. package/lib/Parser.js +65 -34
  103. package/lib/ParserHelpers.js +85 -85
  104. package/lib/PrefetchPlugin.js +31 -31
  105. package/lib/ProgressPlugin.js +192 -192
  106. package/lib/ProvidePlugin.js +55 -55
  107. package/lib/RawModule.js +54 -54
  108. package/lib/RequestShortener.js +63 -63
  109. package/lib/RequireJsStuffPlugin.js +31 -31
  110. package/lib/RuleSet.js +444 -444
  111. package/lib/SetVarMainTemplatePlugin.js +41 -41
  112. package/lib/SingleEntryPlugin.js +35 -35
  113. package/lib/SizeFormatHelpers.js +18 -18
  114. package/lib/SourceMapDevToolModuleOptionsPlugin.js +37 -37
  115. package/lib/Stats.js +27 -8
  116. package/lib/UmdMainTemplatePlugin.js +1 -1
  117. package/lib/UnsupportedFeatureWarning.js +21 -21
  118. package/lib/UseStrictPlugin.js +34 -34
  119. package/lib/WarnCaseSensitiveModulesPlugin.js +31 -31
  120. package/lib/WatchIgnorePlugin.js +49 -49
  121. package/lib/WebpackError.js +11 -11
  122. package/lib/WebpackOptionsDefaulter.js +129 -129
  123. package/lib/WebpackOptionsValidationError.js +196 -196
  124. package/lib/compareLocations.js +36 -36
  125. package/lib/dependencies/AMDDefineDependency.js +142 -142
  126. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +5 -1
  127. package/lib/dependencies/AMDPlugin.js +119 -119
  128. package/lib/dependencies/AMDRequireArrayDependency.js +2 -0
  129. package/lib/dependencies/AMDRequireContextDependency.js +0 -9
  130. package/lib/dependencies/AMDRequireDependenciesBlock.js +33 -33
  131. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +177 -177
  132. package/lib/dependencies/AMDRequireDependency.js +67 -67
  133. package/lib/dependencies/AMDRequireItemDependency.js +22 -22
  134. package/lib/dependencies/CommonJsRequireContextDependency.js +0 -10
  135. package/lib/dependencies/CommonJsRequireDependency.js +22 -22
  136. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +89 -89
  137. package/lib/dependencies/ConstDependency.js +32 -32
  138. package/lib/dependencies/ContextDependency.js +20 -0
  139. package/lib/dependencies/ContextDependencyHelpers.js +71 -71
  140. package/lib/dependencies/ContextElementDependency.js +21 -21
  141. package/lib/dependencies/CriticalDependencyWarning.js +20 -20
  142. package/lib/dependencies/DelegatedExportsDependency.js +33 -33
  143. package/lib/dependencies/DelegatedSourceDependency.js +18 -18
  144. package/lib/dependencies/DllEntryDependency.js +20 -20
  145. package/lib/dependencies/HarmonyCompatibilityDependency.js +30 -30
  146. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +14 -2
  147. package/lib/dependencies/HarmonyExportExpressionDependency.js +0 -7
  148. package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
  149. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +45 -45
  150. package/lib/dependencies/HarmonyExportSpecifierDependency.js +0 -13
  151. package/lib/dependencies/HarmonyModulesHelpers.js +0 -53
  152. package/lib/dependencies/ImportContextDependency.js +0 -10
  153. package/lib/dependencies/ImportDependenciesBlock.js +17 -17
  154. package/lib/dependencies/ImportEagerContextDependency.js +22 -22
  155. package/lib/dependencies/ImportLazyContextDependency.js +22 -22
  156. package/lib/dependencies/ImportLazyOnceContextDependency.js +22 -22
  157. package/lib/dependencies/ImportParserPlugin.js +89 -89
  158. package/lib/dependencies/ImportPlugin.js +60 -60
  159. package/lib/dependencies/ImportWeakContextDependency.js +22 -22
  160. package/lib/dependencies/LoaderDependency.js +18 -18
  161. package/lib/dependencies/LoaderPlugin.js +60 -60
  162. package/lib/dependencies/LocalModule.js +23 -23
  163. package/lib/dependencies/LocalModuleDependency.js +24 -24
  164. package/lib/dependencies/LocalModulesHelpers.js +46 -46
  165. package/lib/dependencies/ModuleDependency.js +23 -23
  166. package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
  167. package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
  168. package/lib/dependencies/MultiEntryDependency.js +20 -20
  169. package/lib/dependencies/NullDependency.js +24 -24
  170. package/lib/dependencies/PrefetchDependency.js +18 -18
  171. package/lib/dependencies/RequireContextDependency.js +26 -26
  172. package/lib/dependencies/RequireContextDependencyParserPlugin.js +50 -50
  173. package/lib/dependencies/RequireContextPlugin.js +96 -96
  174. package/lib/dependencies/RequireEnsureDependenciesBlock.js +22 -22
  175. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +102 -102
  176. package/lib/dependencies/RequireEnsureDependency.js +38 -38
  177. package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
  178. package/lib/dependencies/RequireEnsurePlugin.js +40 -40
  179. package/lib/dependencies/RequireHeaderDependency.js +26 -26
  180. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +21 -21
  181. package/lib/dependencies/RequireIncludePlugin.js +33 -33
  182. package/lib/dependencies/RequireResolveContextDependency.js +0 -10
  183. package/lib/dependencies/RequireResolveDependency.js +22 -22
  184. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +71 -71
  185. package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
  186. package/lib/dependencies/SingleEntryDependency.js +18 -18
  187. package/lib/dependencies/SystemPlugin.js +44 -44
  188. package/lib/dependencies/UnsupportedDependency.js +23 -23
  189. package/lib/dependencies/WebpackMissingModule.js +18 -18
  190. package/lib/dependencies/getFunctionExpression.js +44 -44
  191. package/lib/formatLocation.js +54 -54
  192. package/lib/node/NodeChunkTemplatePlugin.js +27 -27
  193. package/lib/node/NodeEnvironmentPlugin.js +25 -25
  194. package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +27 -27
  195. package/lib/node/NodeMainTemplate.runtime.js +24 -24
  196. package/lib/node/NodeMainTemplateAsync.runtime.js +40 -40
  197. package/lib/node/NodeOutputFileSystem.js +22 -22
  198. package/lib/node/NodeSourcePlugin.js +88 -88
  199. package/lib/node/NodeTargetPlugin.js +15 -15
  200. package/lib/node/NodeTemplatePlugin.js +27 -27
  201. package/lib/node/NodeWatchFileSystem.js +72 -72
  202. package/lib/optimize/ChunkModuleIdRangePlugin.js +53 -53
  203. package/lib/optimize/CommonsChunkPlugin.js +40 -19
  204. package/lib/optimize/ConcatenatedModule.js +27 -24
  205. package/lib/optimize/DedupePlugin.js +15 -15
  206. package/lib/optimize/FlagIncludedChunksPlugin.js +35 -35
  207. package/lib/optimize/LimitChunkCountPlugin.js +59 -59
  208. package/lib/optimize/MinChunkSizePlugin.js +65 -65
  209. package/lib/optimize/RemoveEmptyChunksPlugin.js +21 -21
  210. package/lib/optimize/UglifyJsPlugin.js +9 -9
  211. package/lib/performance/AssetsOverSizeLimitWarning.js +23 -23
  212. package/lib/performance/EntrypointsOverSizeLimitWarning.js +28 -28
  213. package/lib/performance/NoAsyncChunksWarning.js +20 -20
  214. package/lib/performance/SizeLimitsPlugin.js +102 -102
  215. package/lib/prepareOptions.js +29 -29
  216. package/lib/removeAndDo.js +15 -15
  217. package/lib/util/Queue.js +42 -0
  218. package/lib/util/Semaphore.js +32 -32
  219. package/lib/util/identifier.js +38 -38
  220. package/lib/validateSchema.js +66 -66
  221. package/lib/web/WebEnvironmentPlugin.js +18 -18
  222. package/lib/webpack.js +1 -0
  223. package/lib/webworker/WebWorkerChunkTemplatePlugin.js +29 -29
  224. package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +28 -28
  225. package/lib/webworker/WebWorkerMainTemplate.runtime.js +58 -58
  226. package/lib/webworker/WebWorkerTemplatePlugin.js +20 -20
  227. package/package.json +1 -1
  228. package/schemas/ajv.absolutePath.js +29 -29
  229. package/schemas/webpackOptionsSchema.json +69 -0
@@ -1,36 +1,36 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- module.exports = function compareLocations(a, b) {
7
- if(typeof a === "string") {
8
- if(typeof b === "string") {
9
- if(a < b) return -1;
10
- if(a > b) return 1;
11
- return 0;
12
- } else if(typeof b === "object") {
13
- return 1;
14
- } else {
15
- return 0;
16
- }
17
- } else if(typeof a === "object") {
18
- if(typeof b === "string") {
19
- return -1;
20
- } else if(typeof b === "object") {
21
- if(a.start && b.start) {
22
- const ap = a.start;
23
- const bp = b.start;
24
- if(ap.line < bp.line) return -1;
25
- if(ap.line > bp.line) return 1;
26
- if(ap.column < bp.column) return -1;
27
- if(ap.column > bp.column) return 1;
28
- }
29
- if(a.index < b.index) return -1;
30
- if(a.index > b.index) return 1;
31
- return 0;
32
- } else {
33
- return 0;
34
- }
35
- }
36
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ module.exports = function compareLocations(a, b) {
7
+ if(typeof a === "string") {
8
+ if(typeof b === "string") {
9
+ if(a < b) return -1;
10
+ if(a > b) return 1;
11
+ return 0;
12
+ } else if(typeof b === "object") {
13
+ return 1;
14
+ } else {
15
+ return 0;
16
+ }
17
+ } else if(typeof a === "object") {
18
+ if(typeof b === "string") {
19
+ return -1;
20
+ } else if(typeof b === "object") {
21
+ if(a.start && b.start) {
22
+ const ap = a.start;
23
+ const bp = b.start;
24
+ if(ap.line < bp.line) return -1;
25
+ if(ap.line > bp.line) return 1;
26
+ if(ap.column < bp.column) return -1;
27
+ if(ap.column > bp.column) return 1;
28
+ }
29
+ if(a.index < b.index) return -1;
30
+ if(a.index > b.index) return 1;
31
+ return 0;
32
+ } else {
33
+ return 0;
34
+ }
35
+ }
36
+ };
@@ -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
- const NullDependency = require("./NullDependency");
7
-
8
- class AMDDefineDependency extends NullDependency {
9
- constructor(range, arrayRange, functionRange, objectRange, namedModule) {
10
- super();
11
- this.range = range;
12
- this.arrayRange = arrayRange;
13
- this.functionRange = functionRange;
14
- this.objectRange = objectRange;
15
- this.namedModule = namedModule;
16
- }
17
-
18
- get type() {
19
- return "amd define";
20
- }
21
- }
22
-
23
- AMDDefineDependency.Template = class AMDDefineDependencyTemplate {
24
- get definitions() {
25
- return {
26
- f: [
27
- "var __WEBPACK_AMD_DEFINE_RESULT__;",
28
- `!(__WEBPACK_AMD_DEFINE_RESULT__ = #.call(exports, __webpack_require__, exports, module),
29
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))`
30
- ],
31
- o: [
32
- "",
33
- "!(module.exports = #)"
34
- ],
35
- of: [
36
- "var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;",
37
- `!(__WEBPACK_AMD_DEFINE_FACTORY__ = (#),
38
- __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
39
- (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
40
- __WEBPACK_AMD_DEFINE_FACTORY__),
41
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))`
42
- ],
43
- af: [
44
- "var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;",
45
- `!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_RESULT__ = #.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
46
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))`
47
- ],
48
- ao: [
49
- "",
50
- "!(#, module.exports = #)"
51
- ],
52
- aof: [
53
- "var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;",
54
- `!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_FACTORY__ = (#),
55
- __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
56
- (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
57
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))`
58
- ],
59
- lf: [
60
- "var XXX, XXXmodule;",
61
- "!(XXXmodule = { id: YYY, exports: {}, loaded: false }, XXX = #.call(XXXmodule.exports, __webpack_require__, XXXmodule.exports, XXXmodule), XXXmodule.loaded = true, XXX === undefined && (XXX = XXXmodule.exports))"
62
- ],
63
- lo: [
64
- "var XXX;",
65
- "!(XXX = #)"
66
- ],
67
- lof: [
68
- "var XXX, XXXfactory, XXXmodule;",
69
- "!(XXXfactory = (#), (XXXmodule = { id: YYY, exports: {}, loaded: false }), XXX = (typeof XXXfactory === 'function' ? (XXXfactory.call(XXXmodule.exports, __webpack_require__, XXXmodule.exports, XXXmodule)) : XXXfactory), (XXXmodule.loaded = true), XXX === undefined && (XXX = XXXmodule.exports))"
70
- ],
71
- laf: [
72
- "var __WEBPACK_AMD_DEFINE_ARRAY__, XXX;",
73
- "!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, XXX = (#.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)))"
74
- ],
75
- lao: [
76
- "var XXX;",
77
- "!(#, XXX = #)"
78
- ],
79
- laof: [
80
- "var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_FACTORY__, XXX;",
81
- `!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_FACTORY__ = (#),
82
- XXX = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
83
- (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__))`
84
- ]
85
- };
86
- }
87
-
88
- apply(dependency, source) {
89
- const branch = this.branch(dependency);
90
- const defAndText = this.definitions[branch];
91
- const definitions = defAndText[0];
92
- const text = defAndText[1];
93
- this.replace(dependency, source, definitions, text);
94
- }
95
-
96
- localModuleVar(dependency) {
97
- return dependency.localModule && dependency.localModule.used && dependency.localModule.variableName();
98
- }
99
-
100
- branch(dependency) {
101
- const localModuleVar = this.localModuleVar(dependency) ? "l" : "";
102
- const arrayRange = dependency.arrayRange ? "a" : "";
103
- const objectRange = dependency.objectRange ? "o" : "";
104
- const functionRange = dependency.functionRange ? "f" : "";
105
- return localModuleVar + arrayRange + objectRange + functionRange;
106
- }
107
-
108
- replace(dependency, source, definition, text) {
109
- const localModuleVar = this.localModuleVar(dependency);
110
- if(localModuleVar) {
111
- text = text.replace(/XXX/g, localModuleVar.replace(/\$/g, "$$$$"));
112
- definition = definition.replace(/XXX/g, localModuleVar.replace(/\$/g, "$$$$"));
113
- }
114
-
115
- if(dependency.namedModule) {
116
- text = text.replace(/YYY/g, JSON.stringify(dependency.namedModule));
117
- }
118
-
119
- const texts = text.split("#");
120
-
121
- if(definition) source.insert(0, definition);
122
-
123
- let current = dependency.range[0];
124
- if(dependency.arrayRange) {
125
- source.replace(current, dependency.arrayRange[0] - 1, texts.shift());
126
- current = dependency.arrayRange[1];
127
- }
128
-
129
- if(dependency.objectRange) {
130
- source.replace(current, dependency.objectRange[0] - 1, texts.shift());
131
- current = dependency.objectRange[1];
132
- } else if(dependency.functionRange) {
133
- source.replace(current, dependency.functionRange[0] - 1, texts.shift());
134
- current = dependency.functionRange[1];
135
- }
136
- source.replace(current, dependency.range[1] - 1, texts.shift());
137
- if(texts.length > 0)
138
- throw new Error("Implementation error");
139
- }
140
- };
141
-
142
- module.exports = AMDDefineDependency;
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 AMDDefineDependency extends NullDependency {
9
+ constructor(range, arrayRange, functionRange, objectRange, namedModule) {
10
+ super();
11
+ this.range = range;
12
+ this.arrayRange = arrayRange;
13
+ this.functionRange = functionRange;
14
+ this.objectRange = objectRange;
15
+ this.namedModule = namedModule;
16
+ }
17
+
18
+ get type() {
19
+ return "amd define";
20
+ }
21
+ }
22
+
23
+ AMDDefineDependency.Template = class AMDDefineDependencyTemplate {
24
+ get definitions() {
25
+ return {
26
+ f: [
27
+ "var __WEBPACK_AMD_DEFINE_RESULT__;",
28
+ `!(__WEBPACK_AMD_DEFINE_RESULT__ = #.call(exports, __webpack_require__, exports, module),
29
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))`
30
+ ],
31
+ o: [
32
+ "",
33
+ "!(module.exports = #)"
34
+ ],
35
+ of: [
36
+ "var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;",
37
+ `!(__WEBPACK_AMD_DEFINE_FACTORY__ = (#),
38
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
39
+ (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
40
+ __WEBPACK_AMD_DEFINE_FACTORY__),
41
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))`
42
+ ],
43
+ af: [
44
+ "var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;",
45
+ `!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_RESULT__ = #.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
46
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))`
47
+ ],
48
+ ao: [
49
+ "",
50
+ "!(#, module.exports = #)"
51
+ ],
52
+ aof: [
53
+ "var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;",
54
+ `!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_FACTORY__ = (#),
55
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
56
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
57
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))`
58
+ ],
59
+ lf: [
60
+ "var XXX, XXXmodule;",
61
+ "!(XXXmodule = { id: YYY, exports: {}, loaded: false }, XXX = #.call(XXXmodule.exports, __webpack_require__, XXXmodule.exports, XXXmodule), XXXmodule.loaded = true, XXX === undefined && (XXX = XXXmodule.exports))"
62
+ ],
63
+ lo: [
64
+ "var XXX;",
65
+ "!(XXX = #)"
66
+ ],
67
+ lof: [
68
+ "var XXX, XXXfactory, XXXmodule;",
69
+ "!(XXXfactory = (#), (XXXmodule = { id: YYY, exports: {}, loaded: false }), XXX = (typeof XXXfactory === 'function' ? (XXXfactory.call(XXXmodule.exports, __webpack_require__, XXXmodule.exports, XXXmodule)) : XXXfactory), (XXXmodule.loaded = true), XXX === undefined && (XXX = XXXmodule.exports))"
70
+ ],
71
+ laf: [
72
+ "var __WEBPACK_AMD_DEFINE_ARRAY__, XXX;",
73
+ "!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, XXX = (#.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)))"
74
+ ],
75
+ lao: [
76
+ "var XXX;",
77
+ "!(#, XXX = #)"
78
+ ],
79
+ laof: [
80
+ "var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_FACTORY__, XXX;",
81
+ `!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_FACTORY__ = (#),
82
+ XXX = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
83
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__))`
84
+ ]
85
+ };
86
+ }
87
+
88
+ apply(dependency, source) {
89
+ const branch = this.branch(dependency);
90
+ const defAndText = this.definitions[branch];
91
+ const definitions = defAndText[0];
92
+ const text = defAndText[1];
93
+ this.replace(dependency, source, definitions, text);
94
+ }
95
+
96
+ localModuleVar(dependency) {
97
+ return dependency.localModule && dependency.localModule.used && dependency.localModule.variableName();
98
+ }
99
+
100
+ branch(dependency) {
101
+ const localModuleVar = this.localModuleVar(dependency) ? "l" : "";
102
+ const arrayRange = dependency.arrayRange ? "a" : "";
103
+ const objectRange = dependency.objectRange ? "o" : "";
104
+ const functionRange = dependency.functionRange ? "f" : "";
105
+ return localModuleVar + arrayRange + objectRange + functionRange;
106
+ }
107
+
108
+ replace(dependency, source, definition, text) {
109
+ const localModuleVar = this.localModuleVar(dependency);
110
+ if(localModuleVar) {
111
+ text = text.replace(/XXX/g, localModuleVar.replace(/\$/g, "$$$$"));
112
+ definition = definition.replace(/XXX/g, localModuleVar.replace(/\$/g, "$$$$"));
113
+ }
114
+
115
+ if(dependency.namedModule) {
116
+ text = text.replace(/YYY/g, JSON.stringify(dependency.namedModule));
117
+ }
118
+
119
+ const texts = text.split("#");
120
+
121
+ if(definition) source.insert(0, definition);
122
+
123
+ let current = dependency.range[0];
124
+ if(dependency.arrayRange) {
125
+ source.replace(current, dependency.arrayRange[0] - 1, texts.shift());
126
+ current = dependency.arrayRange[1];
127
+ }
128
+
129
+ if(dependency.objectRange) {
130
+ source.replace(current, dependency.objectRange[0] - 1, texts.shift());
131
+ current = dependency.objectRange[1];
132
+ } else if(dependency.functionRange) {
133
+ source.replace(current, dependency.functionRange[0] - 1, texts.shift());
134
+ current = dependency.functionRange[1];
135
+ }
136
+ source.replace(current, dependency.range[1] - 1, texts.shift());
137
+ if(texts.length > 0)
138
+ throw new Error("Implementation error");
139
+ }
140
+ };
141
+
142
+ module.exports = AMDDefineDependency;
@@ -28,6 +28,10 @@ class AMDDefineDependencyParserPlugin {
28
28
  this.options = options;
29
29
  }
30
30
 
31
+ newDefineDependency(range, arrayRange, functionRange, objectRange, namedModule) {
32
+ return new AMDDefineDependency(range, arrayRange, functionRange, objectRange, namedModule);
33
+ }
34
+
31
35
  apply(parser) {
32
36
  const options = this.options;
33
37
  parser.plugin("call define", (expr) => {
@@ -156,7 +160,7 @@ class AMDDefineDependencyParserPlugin {
156
160
  parser.walkExpression(fn || obj);
157
161
  }
158
162
 
159
- const dep = new AMDDefineDependency(
163
+ const dep = this.newDefineDependency(
160
164
  expr.range,
161
165
  array ? array.range : null,
162
166
  fn ? fn.range : null,
@@ -1,119 +1,119 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const path = require("path");
8
- const AMDRequireDependency = require("./AMDRequireDependency");
9
- const AMDRequireItemDependency = require("./AMDRequireItemDependency");
10
- const AMDRequireArrayDependency = require("./AMDRequireArrayDependency");
11
- const AMDRequireContextDependency = require("./AMDRequireContextDependency");
12
- const AMDDefineDependency = require("./AMDDefineDependency");
13
- const UnsupportedDependency = require("./UnsupportedDependency");
14
- const LocalModuleDependency = require("./LocalModuleDependency");
15
-
16
- const NullFactory = require("../NullFactory");
17
-
18
- const AMDRequireDependenciesBlockParserPlugin = require("./AMDRequireDependenciesBlockParserPlugin");
19
- const AMDDefineDependencyParserPlugin = require("./AMDDefineDependencyParserPlugin");
20
-
21
- const AliasPlugin = require("enhanced-resolve/lib/AliasPlugin");
22
-
23
- const ParserHelpers = require("../ParserHelpers");
24
-
25
- class AMDPlugin {
26
- constructor(options, amdOptions) {
27
- this.amdOptions = amdOptions;
28
- this.options = options;
29
- }
30
-
31
- apply(compiler) {
32
- const options = this.options;
33
- const amdOptions = this.amdOptions;
34
- compiler.plugin("compilation", (compilation, params) => {
35
- const normalModuleFactory = params.normalModuleFactory;
36
- const contextModuleFactory = params.contextModuleFactory;
37
-
38
- compilation.dependencyFactories.set(AMDRequireDependency, new NullFactory());
39
- compilation.dependencyTemplates.set(AMDRequireDependency, new AMDRequireDependency.Template());
40
-
41
- compilation.dependencyFactories.set(AMDRequireItemDependency, normalModuleFactory);
42
- compilation.dependencyTemplates.set(AMDRequireItemDependency, new AMDRequireItemDependency.Template());
43
-
44
- compilation.dependencyFactories.set(AMDRequireArrayDependency, new NullFactory());
45
- compilation.dependencyTemplates.set(AMDRequireArrayDependency, new AMDRequireArrayDependency.Template());
46
-
47
- compilation.dependencyFactories.set(AMDRequireContextDependency, contextModuleFactory);
48
- compilation.dependencyTemplates.set(AMDRequireContextDependency, new AMDRequireContextDependency.Template());
49
-
50
- compilation.dependencyFactories.set(AMDDefineDependency, new NullFactory());
51
- compilation.dependencyTemplates.set(AMDDefineDependency, new AMDDefineDependency.Template());
52
-
53
- compilation.dependencyFactories.set(UnsupportedDependency, new NullFactory());
54
- compilation.dependencyTemplates.set(UnsupportedDependency, new UnsupportedDependency.Template());
55
-
56
- compilation.dependencyFactories.set(LocalModuleDependency, new NullFactory());
57
- compilation.dependencyTemplates.set(LocalModuleDependency, new LocalModuleDependency.Template());
58
-
59
- params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
60
-
61
- if(typeof parserOptions.amd !== "undefined" && !parserOptions.amd)
62
- return;
63
-
64
- function setExpressionToModule(outerExpr, module) {
65
- parser.plugin("expression " + outerExpr, (expr) => {
66
- const dep = new AMDRequireItemDependency(module, expr.range);
67
- dep.userRequest = outerExpr;
68
- dep.loc = expr.loc;
69
- parser.state.current.addDependency(dep);
70
- return true;
71
- });
72
- }
73
-
74
- parser.apply(
75
- new AMDRequireDependenciesBlockParserPlugin(options),
76
- new AMDDefineDependencyParserPlugin(options)
77
- );
78
- setExpressionToModule("require.amd", "!!webpack amd options");
79
- setExpressionToModule("define.amd", "!!webpack amd options");
80
- setExpressionToModule("define", "!!webpack amd define");
81
- parser.plugin("expression __webpack_amd_options__", () =>
82
- parser.state.current.addVariable("__webpack_amd_options__", JSON.stringify(amdOptions)));
83
- parser.plugin("evaluate typeof define.amd", ParserHelpers.evaluateToString(typeof amdOptions));
84
- parser.plugin("evaluate typeof require.amd", ParserHelpers.evaluateToString(typeof amdOptions));
85
- parser.plugin("evaluate Identifier define.amd", ParserHelpers.evaluateToIdentifier("define.amd", true));
86
- parser.plugin("evaluate Identifier require.amd", ParserHelpers.evaluateToIdentifier("require.amd", true));
87
- parser.plugin("typeof define", ParserHelpers.toConstantDependency(JSON.stringify("function")));
88
- parser.plugin("evaluate typeof define", ParserHelpers.evaluateToString("function"));
89
- parser.plugin("can-rename define", ParserHelpers.approve);
90
- parser.plugin("rename define", (expr) => {
91
- const dep = new AMDRequireItemDependency("!!webpack amd define", expr.range);
92
- dep.userRequest = "define";
93
- dep.loc = expr.loc;
94
- parser.state.current.addDependency(dep);
95
- return false;
96
- });
97
- parser.plugin("typeof require", ParserHelpers.toConstantDependency(JSON.stringify("function")));
98
- parser.plugin("evaluate typeof require", ParserHelpers.evaluateToString("function"));
99
- });
100
- });
101
- compiler.plugin("after-resolvers", () => {
102
- compiler.resolvers.normal.apply(
103
- new AliasPlugin("described-resolve", {
104
- name: "amdefine",
105
- alias: path.join(__dirname, "..", "..", "buildin", "amd-define.js")
106
- }, "resolve"),
107
- new AliasPlugin("described-resolve", {
108
- name: "webpack amd options",
109
- alias: path.join(__dirname, "..", "..", "buildin", "amd-options.js")
110
- }, "resolve"),
111
- new AliasPlugin("described-resolve", {
112
- name: "webpack amd define",
113
- alias: path.join(__dirname, "..", "..", "buildin", "amd-define.js")
114
- }, "resolve")
115
- );
116
- });
117
- }
118
- }
119
- module.exports = AMDPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const path = require("path");
8
+ const AMDRequireDependency = require("./AMDRequireDependency");
9
+ const AMDRequireItemDependency = require("./AMDRequireItemDependency");
10
+ const AMDRequireArrayDependency = require("./AMDRequireArrayDependency");
11
+ const AMDRequireContextDependency = require("./AMDRequireContextDependency");
12
+ const AMDDefineDependency = require("./AMDDefineDependency");
13
+ const UnsupportedDependency = require("./UnsupportedDependency");
14
+ const LocalModuleDependency = require("./LocalModuleDependency");
15
+
16
+ const NullFactory = require("../NullFactory");
17
+
18
+ const AMDRequireDependenciesBlockParserPlugin = require("./AMDRequireDependenciesBlockParserPlugin");
19
+ const AMDDefineDependencyParserPlugin = require("./AMDDefineDependencyParserPlugin");
20
+
21
+ const AliasPlugin = require("enhanced-resolve/lib/AliasPlugin");
22
+
23
+ const ParserHelpers = require("../ParserHelpers");
24
+
25
+ class AMDPlugin {
26
+ constructor(options, amdOptions) {
27
+ this.amdOptions = amdOptions;
28
+ this.options = options;
29
+ }
30
+
31
+ apply(compiler) {
32
+ const options = this.options;
33
+ const amdOptions = this.amdOptions;
34
+ compiler.plugin("compilation", (compilation, params) => {
35
+ const normalModuleFactory = params.normalModuleFactory;
36
+ const contextModuleFactory = params.contextModuleFactory;
37
+
38
+ compilation.dependencyFactories.set(AMDRequireDependency, new NullFactory());
39
+ compilation.dependencyTemplates.set(AMDRequireDependency, new AMDRequireDependency.Template());
40
+
41
+ compilation.dependencyFactories.set(AMDRequireItemDependency, normalModuleFactory);
42
+ compilation.dependencyTemplates.set(AMDRequireItemDependency, new AMDRequireItemDependency.Template());
43
+
44
+ compilation.dependencyFactories.set(AMDRequireArrayDependency, new NullFactory());
45
+ compilation.dependencyTemplates.set(AMDRequireArrayDependency, new AMDRequireArrayDependency.Template());
46
+
47
+ compilation.dependencyFactories.set(AMDRequireContextDependency, contextModuleFactory);
48
+ compilation.dependencyTemplates.set(AMDRequireContextDependency, new AMDRequireContextDependency.Template());
49
+
50
+ compilation.dependencyFactories.set(AMDDefineDependency, new NullFactory());
51
+ compilation.dependencyTemplates.set(AMDDefineDependency, new AMDDefineDependency.Template());
52
+
53
+ compilation.dependencyFactories.set(UnsupportedDependency, new NullFactory());
54
+ compilation.dependencyTemplates.set(UnsupportedDependency, new UnsupportedDependency.Template());
55
+
56
+ compilation.dependencyFactories.set(LocalModuleDependency, new NullFactory());
57
+ compilation.dependencyTemplates.set(LocalModuleDependency, new LocalModuleDependency.Template());
58
+
59
+ params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
60
+
61
+ if(typeof parserOptions.amd !== "undefined" && !parserOptions.amd)
62
+ return;
63
+
64
+ function setExpressionToModule(outerExpr, module) {
65
+ parser.plugin("expression " + outerExpr, (expr) => {
66
+ const dep = new AMDRequireItemDependency(module, expr.range);
67
+ dep.userRequest = outerExpr;
68
+ dep.loc = expr.loc;
69
+ parser.state.current.addDependency(dep);
70
+ return true;
71
+ });
72
+ }
73
+
74
+ parser.apply(
75
+ new AMDRequireDependenciesBlockParserPlugin(options),
76
+ new AMDDefineDependencyParserPlugin(options)
77
+ );
78
+ setExpressionToModule("require.amd", "!!webpack amd options");
79
+ setExpressionToModule("define.amd", "!!webpack amd options");
80
+ setExpressionToModule("define", "!!webpack amd define");
81
+ parser.plugin("expression __webpack_amd_options__", () =>
82
+ parser.state.current.addVariable("__webpack_amd_options__", JSON.stringify(amdOptions)));
83
+ parser.plugin("evaluate typeof define.amd", ParserHelpers.evaluateToString(typeof amdOptions));
84
+ parser.plugin("evaluate typeof require.amd", ParserHelpers.evaluateToString(typeof amdOptions));
85
+ parser.plugin("evaluate Identifier define.amd", ParserHelpers.evaluateToIdentifier("define.amd", true));
86
+ parser.plugin("evaluate Identifier require.amd", ParserHelpers.evaluateToIdentifier("require.amd", true));
87
+ parser.plugin("typeof define", ParserHelpers.toConstantDependency(JSON.stringify("function")));
88
+ parser.plugin("evaluate typeof define", ParserHelpers.evaluateToString("function"));
89
+ parser.plugin("can-rename define", ParserHelpers.approve);
90
+ parser.plugin("rename define", (expr) => {
91
+ const dep = new AMDRequireItemDependency("!!webpack amd define", expr.range);
92
+ dep.userRequest = "define";
93
+ dep.loc = expr.loc;
94
+ parser.state.current.addDependency(dep);
95
+ return false;
96
+ });
97
+ parser.plugin("typeof require", ParserHelpers.toConstantDependency(JSON.stringify("function")));
98
+ parser.plugin("evaluate typeof require", ParserHelpers.evaluateToString("function"));
99
+ });
100
+ });
101
+ compiler.plugin("after-resolvers", () => {
102
+ compiler.resolvers.normal.apply(
103
+ new AliasPlugin("described-resolve", {
104
+ name: "amdefine",
105
+ alias: path.join(__dirname, "..", "..", "buildin", "amd-define.js")
106
+ }, "resolve"),
107
+ new AliasPlugin("described-resolve", {
108
+ name: "webpack amd options",
109
+ alias: path.join(__dirname, "..", "..", "buildin", "amd-options.js")
110
+ }, "resolve"),
111
+ new AliasPlugin("described-resolve", {
112
+ name: "webpack amd define",
113
+ alias: path.join(__dirname, "..", "..", "buildin", "amd-define.js")
114
+ }, "resolve")
115
+ );
116
+ });
117
+ }
118
+ }
119
+ module.exports = AMDPlugin;
@@ -47,6 +47,8 @@ AMDRequireArrayDependency.Template = class AMDRequireArrayDependencyTemplate {
47
47
  if(dep.module) {
48
48
  const stringifiedId = JSON.stringify(dep.module.id);
49
49
  return `__webpack_require__(${comment}${stringifiedId})`;
50
+ } else if(dep.localModule) {
51
+ return dep.localModule.variableName();
50
52
  }
51
53
 
52
54
  return webpackMissingModuleModule(dep.request);
@@ -5,7 +5,6 @@
5
5
  "use strict";
6
6
 
7
7
  const ContextDependency = require("./ContextDependency");
8
- const CriticalDependencyWarning = require("./CriticalDependencyWarning");
9
8
  class AMDRequireContextDependency extends ContextDependency {
10
9
  constructor(request, recursive, regExp, range, valueRange) {
11
10
  super(request, recursive, regExp);
@@ -16,14 +15,6 @@ class AMDRequireContextDependency extends ContextDependency {
16
15
  get type() {
17
16
  return "amd require context";
18
17
  }
19
-
20
- getWarnings() {
21
- if(this.critical) {
22
- return [
23
- new CriticalDependencyWarning(this.critical)
24
- ];
25
- }
26
- }
27
18
  }
28
19
  AMDRequireContextDependency.Template = require("./ContextDependencyTemplateAsRequireCall");
29
20
  module.exports = AMDRequireContextDependency;