webpack 3.8.1 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +721 -716
  3. package/bin/webpack.js +12 -8
  4. package/buildin/.eslintrc +7 -7
  5. package/buildin/amd-define.js +3 -3
  6. package/buildin/amd-options.js +2 -2
  7. package/buildin/global.js +21 -21
  8. package/buildin/harmony-module.js +24 -24
  9. package/buildin/module.js +22 -22
  10. package/buildin/system.js +7 -7
  11. package/hot/.eslintrc +9 -9
  12. package/hot/dev-server.js +53 -53
  13. package/hot/emitter.js +2 -2
  14. package/hot/log-apply-result.js +38 -38
  15. package/hot/log.js +44 -44
  16. package/hot/only-dev-server.js +71 -71
  17. package/hot/poll.js +34 -34
  18. package/hot/signal.js +52 -51
  19. package/lib/APIPlugin.js +45 -45
  20. package/lib/AsyncDependenciesBlock.js +43 -43
  21. package/lib/AutomaticPrefetchPlugin.js +36 -36
  22. package/lib/BannerPlugin.js +4 -2
  23. package/lib/BasicEvaluatedExpression.js +203 -203
  24. package/lib/CaseSensitiveModulesWarning.js +49 -49
  25. package/lib/Chunk.js +2 -2
  26. package/lib/ChunkRenderError.js +24 -24
  27. package/lib/ChunkTemplate.js +36 -36
  28. package/lib/CompatibilityPlugin.js +57 -57
  29. package/lib/Compilation.js +81 -92
  30. package/lib/Compiler.js +519 -523
  31. package/lib/ConstPlugin.js +60 -60
  32. package/lib/ContextModule.js +431 -431
  33. package/lib/ContextReplacementPlugin.js +111 -111
  34. package/lib/DefinePlugin.js +123 -123
  35. package/lib/DelegatedModule.js +98 -98
  36. package/lib/DelegatedModuleFactoryPlugin.js +59 -59
  37. package/lib/DelegatedPlugin.js +30 -30
  38. package/lib/DependenciesBlockVariable.js +51 -51
  39. package/lib/DllEntryPlugin.js +37 -37
  40. package/lib/DllModule.js +58 -58
  41. package/lib/DllModuleFactory.js +20 -20
  42. package/lib/DllPlugin.js +38 -38
  43. package/lib/DllReferencePlugin.js +62 -62
  44. package/lib/DynamicEntryPlugin.js +59 -59
  45. package/lib/EntryModuleNotFoundError.js +22 -22
  46. package/lib/EntryOptionPlugin.js +31 -31
  47. package/lib/EnvironmentPlugin.js +60 -50
  48. package/lib/ErrorHelpers.js +31 -31
  49. package/lib/EvalDevToolModulePlugin.js +22 -22
  50. package/lib/EvalDevToolModuleTemplatePlugin.js +33 -33
  51. package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +75 -75
  52. package/lib/EvalSourceMapDevToolPlugin.js +32 -32
  53. package/lib/ExportPropertyMainTemplatePlugin.js +31 -31
  54. package/lib/ExtendedAPIPlugin.js +47 -47
  55. package/lib/ExternalModuleFactoryPlugin.js +91 -91
  56. package/lib/ExternalsPlugin.js +21 -21
  57. package/lib/FlagDependencyExportsPlugin.js +101 -101
  58. package/lib/FlagDependencyUsagePlugin.js +1 -1
  59. package/lib/FunctionModulePlugin.js +24 -24
  60. package/lib/HashedModuleIdsPlugin.js +42 -42
  61. package/lib/HotModuleReplacementPlugin.js +5 -5
  62. package/lib/HotUpdateChunkTemplate.js +31 -31
  63. package/lib/IgnorePlugin.js +69 -69
  64. package/lib/JsonpExportMainTemplatePlugin.js +37 -37
  65. package/lib/JsonpHotUpdateChunkTemplatePlugin.js +27 -27
  66. package/lib/JsonpMainTemplatePlugin.js +4 -3
  67. package/lib/JsonpTemplatePlugin.js +21 -21
  68. package/lib/LibManifestPlugin.js +63 -63
  69. package/lib/LibraryTemplatePlugin.js +92 -92
  70. package/lib/LoaderOptionsPlugin.js +36 -36
  71. package/lib/LoaderTargetPlugin.js +19 -19
  72. package/lib/MainTemplate.js +3 -1
  73. package/lib/MemoryOutputFileSystem.js +5 -5
  74. package/lib/ModuleBuildError.js +42 -42
  75. package/lib/ModuleDependencyError.js +22 -22
  76. package/lib/ModuleDependencyWarning.js +22 -22
  77. package/lib/ModuleError.js +24 -24
  78. package/lib/ModuleFilenameHelpers.js +162 -162
  79. package/lib/ModuleNotFoundError.js +26 -26
  80. package/lib/ModuleReason.js +50 -50
  81. package/lib/ModuleTemplate.js +23 -23
  82. package/lib/ModuleWarning.js +24 -24
  83. package/lib/MovedToPluginWarningPlugin.js +21 -21
  84. package/lib/MultiCompiler.js +164 -164
  85. package/lib/MultiEntryPlugin.js +39 -39
  86. package/lib/MultiModuleFactory.js +19 -19
  87. package/lib/MultiStats.js +79 -79
  88. package/lib/MultiWatching.js +32 -32
  89. package/lib/NamedChunksPlugin.js +30 -30
  90. package/lib/NamedModulesPlugin.js +27 -27
  91. package/lib/NewWatchingPlugin.js +15 -15
  92. package/lib/NoEmitOnErrorsPlugin.js +22 -22
  93. package/lib/NoErrorsPlugin.js +29 -29
  94. package/lib/NodeStuffPlugin.js +97 -97
  95. package/lib/NormalModuleFactory.js +3 -1
  96. package/lib/NormalModuleReplacementPlugin.js +45 -45
  97. package/lib/NullFactory.js +12 -12
  98. package/lib/OptionsApply.js +10 -10
  99. package/lib/OptionsDefaulter.js +2 -2
  100. package/lib/Parser.js +79 -0
  101. package/lib/ParserHelpers.js +85 -85
  102. package/lib/PrefetchPlugin.js +31 -31
  103. package/lib/ProgressPlugin.js +192 -192
  104. package/lib/ProvidePlugin.js +55 -55
  105. package/lib/RawModule.js +54 -54
  106. package/lib/RequestShortener.js +63 -63
  107. package/lib/RequireJsStuffPlugin.js +31 -31
  108. package/lib/RuleSet.js +444 -444
  109. package/lib/SetVarMainTemplatePlugin.js +41 -41
  110. package/lib/SingleEntryPlugin.js +35 -35
  111. package/lib/SizeFormatHelpers.js +18 -18
  112. package/lib/SourceMapDevToolModuleOptionsPlugin.js +37 -37
  113. package/lib/SourceMapDevToolPlugin.js +3 -3
  114. package/lib/Stats.js +4 -2
  115. package/lib/TemplatedPathPlugin.js +6 -2
  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 +130 -129
  123. package/lib/WebpackOptionsValidationError.js +219 -196
  124. package/lib/compareLocations.js +36 -36
  125. package/lib/dependencies/AMDDefineDependency.js +142 -142
  126. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +18 -6
  127. package/lib/dependencies/AMDPlugin.js +119 -119
  128. package/lib/dependencies/AMDRequireDependenciesBlock.js +33 -33
  129. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +177 -177
  130. package/lib/dependencies/AMDRequireDependency.js +67 -67
  131. package/lib/dependencies/AMDRequireItemDependency.js +22 -22
  132. package/lib/dependencies/CommonJsRequireDependency.js +22 -22
  133. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +89 -89
  134. package/lib/dependencies/ConstDependency.js +32 -32
  135. package/lib/dependencies/ContextDependencyHelpers.js +71 -71
  136. package/lib/dependencies/ContextElementDependency.js +21 -21
  137. package/lib/dependencies/CriticalDependencyWarning.js +20 -20
  138. package/lib/dependencies/DelegatedExportsDependency.js +33 -33
  139. package/lib/dependencies/DelegatedSourceDependency.js +18 -18
  140. package/lib/dependencies/DllEntryDependency.js +20 -20
  141. package/lib/dependencies/HarmonyCompatibilityDependency.js +30 -30
  142. package/lib/dependencies/HarmonyDetectionParserPlugin.js +2 -2
  143. package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
  144. package/lib/dependencies/HarmonyImportDependency.js +1 -1
  145. package/lib/dependencies/ImportDependenciesBlock.js +17 -17
  146. package/lib/dependencies/ImportEagerContextDependency.js +22 -22
  147. package/lib/dependencies/ImportLazyContextDependency.js +22 -22
  148. package/lib/dependencies/ImportLazyOnceContextDependency.js +22 -22
  149. package/lib/dependencies/ImportParserPlugin.js +89 -89
  150. package/lib/dependencies/ImportPlugin.js +60 -60
  151. package/lib/dependencies/ImportWeakContextDependency.js +22 -22
  152. package/lib/dependencies/LoaderDependency.js +18 -18
  153. package/lib/dependencies/LoaderPlugin.js +60 -60
  154. package/lib/dependencies/LocalModule.js +23 -23
  155. package/lib/dependencies/LocalModuleDependency.js +24 -24
  156. package/lib/dependencies/LocalModulesHelpers.js +46 -46
  157. package/lib/dependencies/ModuleDependency.js +23 -23
  158. package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
  159. package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
  160. package/lib/dependencies/MultiEntryDependency.js +20 -20
  161. package/lib/dependencies/NullDependency.js +24 -24
  162. package/lib/dependencies/PrefetchDependency.js +18 -18
  163. package/lib/dependencies/RequireContextDependency.js +26 -26
  164. package/lib/dependencies/RequireContextDependencyParserPlugin.js +50 -50
  165. package/lib/dependencies/RequireContextPlugin.js +96 -96
  166. package/lib/dependencies/RequireEnsureDependenciesBlock.js +22 -22
  167. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +102 -102
  168. package/lib/dependencies/RequireEnsureDependency.js +38 -38
  169. package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
  170. package/lib/dependencies/RequireEnsurePlugin.js +40 -40
  171. package/lib/dependencies/RequireHeaderDependency.js +26 -26
  172. package/lib/dependencies/RequireIncludeDependency.js +8 -0
  173. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +21 -21
  174. package/lib/dependencies/RequireIncludePlugin.js +33 -33
  175. package/lib/dependencies/RequireResolveDependency.js +22 -22
  176. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +71 -71
  177. package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
  178. package/lib/dependencies/SingleEntryDependency.js +18 -18
  179. package/lib/dependencies/SystemPlugin.js +44 -44
  180. package/lib/dependencies/UnsupportedDependency.js +23 -23
  181. package/lib/dependencies/WebpackMissingModule.js +18 -18
  182. package/lib/dependencies/getFunctionExpression.js +44 -44
  183. package/lib/formatLocation.js +54 -54
  184. package/lib/node/NodeChunkTemplatePlugin.js +27 -27
  185. package/lib/node/NodeEnvironmentPlugin.js +25 -25
  186. package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +27 -27
  187. package/lib/node/NodeMainTemplate.runtime.js +24 -24
  188. package/lib/node/NodeMainTemplateAsync.runtime.js +40 -40
  189. package/lib/node/NodeOutputFileSystem.js +22 -22
  190. package/lib/node/NodeSourcePlugin.js +88 -88
  191. package/lib/node/NodeTargetPlugin.js +17 -15
  192. package/lib/node/NodeTemplatePlugin.js +27 -27
  193. package/lib/node/NodeWatchFileSystem.js +72 -72
  194. package/lib/optimize/ChunkModuleIdRangePlugin.js +53 -53
  195. package/lib/optimize/ConcatenatedModule.js +17 -6
  196. package/lib/optimize/DedupePlugin.js +15 -15
  197. package/lib/optimize/FlagIncludedChunksPlugin.js +35 -35
  198. package/lib/optimize/LimitChunkCountPlugin.js +59 -59
  199. package/lib/optimize/MinChunkSizePlugin.js +65 -65
  200. package/lib/optimize/RemoveEmptyChunksPlugin.js +21 -21
  201. package/lib/optimize/UglifyJsPlugin.js +9 -9
  202. package/lib/performance/AssetsOverSizeLimitWarning.js +23 -23
  203. package/lib/performance/EntrypointsOverSizeLimitWarning.js +28 -28
  204. package/lib/performance/NoAsyncChunksWarning.js +20 -20
  205. package/lib/performance/SizeLimitsPlugin.js +102 -102
  206. package/lib/prepareOptions.js +29 -29
  207. package/lib/removeAndDo.js +15 -15
  208. package/lib/util/Semaphore.js +32 -32
  209. package/lib/util/identifier.js +38 -38
  210. package/lib/validateSchema.js +66 -66
  211. package/lib/web/WebEnvironmentPlugin.js +18 -18
  212. package/lib/webworker/WebWorkerChunkTemplatePlugin.js +29 -29
  213. package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +28 -28
  214. package/lib/webworker/WebWorkerMainTemplate.runtime.js +58 -58
  215. package/lib/webworker/WebWorkerMainTemplatePlugin.js +2 -2
  216. package/lib/webworker/WebWorkerTemplatePlugin.js +20 -20
  217. package/package.json +25 -16
  218. package/schemas/ajv.absolutePath.js +29 -29
  219. package/schemas/webpackOptionsSchema.json +405 -76
@@ -1,41 +1,41 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const ConcatSource = require("webpack-sources").ConcatSource;
8
-
9
- class SetVarMainTemplatePlugin {
10
- constructor(varExpression, copyObject) {
11
- this.varExpression = varExpression;
12
- this.copyObject = copyObject;
13
- }
14
-
15
- apply(compilation) {
16
- const mainTemplate = compilation.mainTemplate;
17
- compilation.templatesPlugin("render-with-entry", (source, chunk, hash) => {
18
- const varExpression = mainTemplate.applyPluginsWaterfall("asset-path", this.varExpression, {
19
- hash,
20
- chunk
21
- });
22
- if(this.copyObject) {
23
- return new ConcatSource(`(function(e, a) { for(var i in a) e[i] = a[i]; }(${varExpression}, `, source, "))");
24
- } else {
25
- const prefix = `${varExpression} =\n`;
26
- return new ConcatSource(prefix, source);
27
- }
28
- });
29
- mainTemplate.plugin("global-hash-paths", (paths) => {
30
- if(this.varExpression) paths.push(this.varExpression);
31
- return paths;
32
- });
33
- mainTemplate.plugin("hash", hash => {
34
- hash.update("set var");
35
- hash.update(`${this.varExpression}`);
36
- hash.update(`${this.copyObject}`);
37
- });
38
- }
39
- }
40
-
41
- module.exports = SetVarMainTemplatePlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const ConcatSource = require("webpack-sources").ConcatSource;
8
+
9
+ class SetVarMainTemplatePlugin {
10
+ constructor(varExpression, copyObject) {
11
+ this.varExpression = varExpression;
12
+ this.copyObject = copyObject;
13
+ }
14
+
15
+ apply(compilation) {
16
+ const mainTemplate = compilation.mainTemplate;
17
+ compilation.templatesPlugin("render-with-entry", (source, chunk, hash) => {
18
+ const varExpression = mainTemplate.applyPluginsWaterfall("asset-path", this.varExpression, {
19
+ hash,
20
+ chunk
21
+ });
22
+ if(this.copyObject) {
23
+ return new ConcatSource(`(function(e, a) { for(var i in a) e[i] = a[i]; }(${varExpression}, `, source, "))");
24
+ } else {
25
+ const prefix = `${varExpression} =\n`;
26
+ return new ConcatSource(prefix, source);
27
+ }
28
+ });
29
+ mainTemplate.plugin("global-hash-paths", (paths) => {
30
+ if(this.varExpression) paths.push(this.varExpression);
31
+ return paths;
32
+ });
33
+ mainTemplate.plugin("hash", hash => {
34
+ hash.update("set var");
35
+ hash.update(`${this.varExpression}`);
36
+ hash.update(`${this.copyObject}`);
37
+ });
38
+ }
39
+ }
40
+
41
+ module.exports = SetVarMainTemplatePlugin;
@@ -1,35 +1,35 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
7
-
8
- class SingleEntryPlugin {
9
- constructor(context, entry, name) {
10
- this.context = context;
11
- this.entry = entry;
12
- this.name = name;
13
- }
14
-
15
- apply(compiler) {
16
- compiler.plugin("compilation", (compilation, params) => {
17
- const normalModuleFactory = params.normalModuleFactory;
18
-
19
- compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
20
- });
21
-
22
- compiler.plugin("make", (compilation, callback) => {
23
- const dep = SingleEntryPlugin.createDependency(this.entry, this.name);
24
- compilation.addEntry(this.context, dep, this.name, callback);
25
- });
26
- }
27
-
28
- static createDependency(entry, name) {
29
- const dep = new SingleEntryDependency(entry);
30
- dep.loc = name;
31
- return dep;
32
- }
33
- }
34
-
35
- module.exports = SingleEntryPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
7
+
8
+ class SingleEntryPlugin {
9
+ constructor(context, entry, name) {
10
+ this.context = context;
11
+ this.entry = entry;
12
+ this.name = name;
13
+ }
14
+
15
+ apply(compiler) {
16
+ compiler.plugin("compilation", (compilation, params) => {
17
+ const normalModuleFactory = params.normalModuleFactory;
18
+
19
+ compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
20
+ });
21
+
22
+ compiler.plugin("make", (compilation, callback) => {
23
+ const dep = SingleEntryPlugin.createDependency(this.entry, this.name);
24
+ compilation.addEntry(this.context, dep, this.name, callback);
25
+ });
26
+ }
27
+
28
+ static createDependency(entry, name) {
29
+ const dep = new SingleEntryDependency(entry);
30
+ dep.loc = name;
31
+ return dep;
32
+ }
33
+ }
34
+
35
+ module.exports = SingleEntryPlugin;
@@ -1,18 +1,18 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Sean Larkin @thelarkinn
4
- */
5
- "use strict";
6
-
7
- const SizeFormatHelpers = exports;
8
-
9
- SizeFormatHelpers.formatSize = size => {
10
- if(size <= 0) {
11
- return "0 bytes";
12
- }
13
-
14
- const abbreviations = ["bytes", "kB", "MB", "GB"];
15
- const index = Math.floor(Math.log(size) / Math.log(1000));
16
-
17
- return `${+(size / Math.pow(1000, index)).toPrecision(3)} ${abbreviations[index]}`;
18
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Sean Larkin @thelarkinn
4
+ */
5
+ "use strict";
6
+
7
+ const SizeFormatHelpers = exports;
8
+
9
+ SizeFormatHelpers.formatSize = size => {
10
+ if(size <= 0) {
11
+ return "0 bytes";
12
+ }
13
+
14
+ const abbreviations = ["bytes", "kB", "MB", "GB"];
15
+ const index = Math.floor(Math.log(size) / Math.log(1000));
16
+
17
+ return `${+(size / Math.pow(1000, index)).toPrecision(3)} ${abbreviations[index]}`;
18
+ };
@@ -1,37 +1,37 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
8
-
9
- class SourceMapDevToolModuleOptionsPlugin {
10
- constructor(options) {
11
- this.options = options;
12
- }
13
-
14
- apply(compilation) {
15
- const options = this.options;
16
- if(options.module !== false) {
17
- compilation.plugin("build-module", module => {
18
- module.useSourceMap = true;
19
- });
20
- }
21
- if(options.lineToLine === true) {
22
- compilation.plugin("build-module", module => {
23
- module.lineToLine = true;
24
- });
25
- } else if(options.lineToLine) {
26
- compilation.plugin("build-module", module => {
27
- if(!module.resource) return;
28
- let resourcePath = module.resource;
29
- const idx = resourcePath.indexOf("?");
30
- if(idx >= 0) resourcePath = resourcePath.substr(0, idx);
31
- module.lineToLine = ModuleFilenameHelpers.matchObject(options.lineToLine, resourcePath);
32
- });
33
- }
34
- }
35
- }
36
-
37
- module.exports = SourceMapDevToolModuleOptionsPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
8
+
9
+ class SourceMapDevToolModuleOptionsPlugin {
10
+ constructor(options) {
11
+ this.options = options;
12
+ }
13
+
14
+ apply(compilation) {
15
+ const options = this.options;
16
+ if(options.module !== false) {
17
+ compilation.plugin("build-module", module => {
18
+ module.useSourceMap = true;
19
+ });
20
+ }
21
+ if(options.lineToLine === true) {
22
+ compilation.plugin("build-module", module => {
23
+ module.lineToLine = true;
24
+ });
25
+ } else if(options.lineToLine) {
26
+ compilation.plugin("build-module", module => {
27
+ if(!module.resource) return;
28
+ let resourcePath = module.resource;
29
+ const idx = resourcePath.indexOf("?");
30
+ if(idx >= 0) resourcePath = resourcePath.substr(0, idx);
31
+ module.lineToLine = ModuleFilenameHelpers.matchObject(options.lineToLine, resourcePath);
32
+ });
33
+ }
34
+ }
35
+ }
36
+
37
+ module.exports = SourceMapDevToolModuleOptionsPlugin;
@@ -158,7 +158,7 @@ class SourceMapDevToolPlugin {
158
158
  const moduleFilenames = modules.map(m => moduleToSourceNameMapping.get(m));
159
159
  sourceMap.sources = moduleFilenames;
160
160
  if(sourceMap.sourcesContent && !options.noSources) {
161
- sourceMap.sourcesContent = sourceMap.sourcesContent.map((content, i) => `${content}\n\n\n${ModuleFilenameHelpers.createFooter(modules[i], requestShortener)}`);
161
+ sourceMap.sourcesContent = sourceMap.sourcesContent.map((content, i) => typeof content === "string" ? `${content}\n\n\n${ModuleFilenameHelpers.createFooter(modules[i], requestShortener)}` : null);
162
162
  } else {
163
163
  sourceMap.sourcesContent = undefined;
164
164
  }
@@ -181,14 +181,14 @@ class SourceMapDevToolPlugin {
181
181
  }
182
182
  let sourceMapFile = compilation.getPath(sourceMapFilename, {
183
183
  chunk,
184
- filename,
184
+ filename: options.fileContext ? path.relative(options.fileContext, filename) : filename,
185
185
  query,
186
186
  basename: basename(filename)
187
187
  });
188
188
  if(sourceMapFile.indexOf("[contenthash]") !== -1) {
189
189
  sourceMapFile = sourceMapFile.replace(/\[contenthash\]/g, crypto.createHash("md5").update(sourceMapString).digest("hex"));
190
190
  }
191
- const sourceMapUrl = path.relative(path.dirname(file), sourceMapFile).replace(/\\/g, "/");
191
+ const sourceMapUrl = options.publicPath ? options.publicPath + sourceMapFile.replace(/\\/g, "/") : path.relative(path.dirname(file), sourceMapFile).replace(/\\/g, "/");
192
192
  if(currentSourceMappingURLComment !== false) {
193
193
  asset.__SourceMapDevToolData[file] = compilation.assets[file] = new ConcatSource(new RawSource(source), currentSourceMappingURLComment.replace(/\[url\]/g, sourceMapUrl));
194
194
  }
package/lib/Stats.js CHANGED
@@ -50,11 +50,13 @@ class Stats {
50
50
  }
51
51
 
52
52
  hasWarnings() {
53
- return this.compilation.warnings.length > 0;
53
+ return this.compilation.warnings.length > 0 ||
54
+ this.compilation.children.some(child => child.getStats().hasWarnings());
54
55
  }
55
56
 
56
57
  hasErrors() {
57
- return this.compilation.errors.length > 0;
58
+ return this.compilation.errors.length > 0 ||
59
+ this.compilation.children.some(child => child.getStats().hasErrors());
58
60
  }
59
61
 
60
62
  // remove a prefixed "!" that can be specified to reverse sort order
@@ -60,6 +60,10 @@ const replacePathVariables = (path, data) => {
60
60
  const chunkHash = chunk && (chunk.renderedHash || chunk.hash);
61
61
  const chunkHashWithLength = chunk && chunk.hashWithLength;
62
62
 
63
+ if(typeof path === "function") {
64
+ path = path(data);
65
+ }
66
+
63
67
  if(data.noChunkHash && REGEXP_CHUNKHASH_FOR_TEST.test(path)) {
64
68
  throw new Error(`Cannot use [chunkhash] for chunk in '${path}' (use [hash] instead)`);
65
69
  }
@@ -101,9 +105,9 @@ class TemplatedPathPlugin {
101
105
  const outputOptions = this.outputOptions;
102
106
  const chunkFilename = outputOptions.chunkFilename || outputOptions.filename;
103
107
  if(REGEXP_CHUNKHASH_FOR_TEST.test(chunkFilename))
104
- hash.update(JSON.stringify(chunk.getChunkMaps(true, true).hash));
108
+ hash.update(JSON.stringify(chunk.getChunkMaps(false, true).hash));
105
109
  if(REGEXP_NAME_FOR_TEST.test(chunkFilename))
106
- hash.update(JSON.stringify(chunk.getChunkMaps(true, true).name));
110
+ hash.update(JSON.stringify(chunk.getChunkMaps(false, true).name));
107
111
  });
108
112
  });
109
113
  }
@@ -171,7 +171,7 @@ class UmdMainTemplatePlugin {
171
171
  " for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n" +
172
172
  " }\n"
173
173
  ) +
174
- "})(this, function(" + externalsArguments(externals) + ") {\nreturn ", "webpack/universalModuleDefinition"), source, ";\n})");
174
+ "})(typeof self !== 'undefined' ? self : this, function(" + externalsArguments(externals) + ") {\nreturn ", "webpack/universalModuleDefinition"), source, ";\n})");
175
175
  });
176
176
  mainTemplate.plugin("global-hash-paths", (paths) => {
177
177
  if(this.names.root) paths = paths.concat(this.names.root);
@@ -1,21 +1,21 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const WebpackError = require("./WebpackError");
8
-
9
- class UnsupportedFeatureWarning extends WebpackError {
10
- constructor(module, message) {
11
- super();
12
-
13
- this.name = "UnsupportedFeatureWarning";
14
- this.message = message;
15
- this.origin = this.module = module;
16
-
17
- Error.captureStackTrace(this, this.constructor);
18
- }
19
- }
20
-
21
- module.exports = UnsupportedFeatureWarning;
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 UnsupportedFeatureWarning extends WebpackError {
10
+ constructor(module, message) {
11
+ super();
12
+
13
+ this.name = "UnsupportedFeatureWarning";
14
+ this.message = message;
15
+ this.origin = this.module = module;
16
+
17
+ Error.captureStackTrace(this, this.constructor);
18
+ }
19
+ }
20
+
21
+ module.exports = UnsupportedFeatureWarning;
@@ -1,34 +1,34 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const ConstDependency = require("./dependencies/ConstDependency");
8
-
9
- class UseStrictPlugin {
10
- apply(compiler) {
11
- compiler.plugin("compilation", (compilation, params) => {
12
- params.normalModuleFactory.plugin("parser", (parser) => {
13
- const parserInstance = parser;
14
- parser.plugin("program", (ast) => {
15
- const firstNode = ast.body[0];
16
- if(firstNode &&
17
- firstNode.type === "ExpressionStatement" &&
18
- firstNode.expression.type === "Literal" &&
19
- firstNode.expression.value === "use strict") {
20
- // Remove "use strict" expression. It will be added later by the renderer again.
21
- // This is necessary in order to not break the strict mode when webpack prepends code.
22
- // @see https://github.com/webpack/webpack/issues/1970
23
- const dep = new ConstDependency("", firstNode.range);
24
- dep.loc = firstNode.loc;
25
- parserInstance.state.current.addDependency(dep);
26
- parserInstance.state.module.strict = true;
27
- }
28
- });
29
- });
30
- });
31
- }
32
- }
33
-
34
- module.exports = UseStrictPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const ConstDependency = require("./dependencies/ConstDependency");
8
+
9
+ class UseStrictPlugin {
10
+ apply(compiler) {
11
+ compiler.plugin("compilation", (compilation, params) => {
12
+ params.normalModuleFactory.plugin("parser", (parser) => {
13
+ const parserInstance = parser;
14
+ parser.plugin("program", (ast) => {
15
+ const firstNode = ast.body[0];
16
+ if(firstNode &&
17
+ firstNode.type === "ExpressionStatement" &&
18
+ firstNode.expression.type === "Literal" &&
19
+ firstNode.expression.value === "use strict") {
20
+ // Remove "use strict" expression. It will be added later by the renderer again.
21
+ // This is necessary in order to not break the strict mode when webpack prepends code.
22
+ // @see https://github.com/webpack/webpack/issues/1970
23
+ const dep = new ConstDependency("", firstNode.range);
24
+ dep.loc = firstNode.loc;
25
+ parserInstance.state.current.addDependency(dep);
26
+ parserInstance.state.module.strict = true;
27
+ }
28
+ });
29
+ });
30
+ });
31
+ }
32
+ }
33
+
34
+ module.exports = UseStrictPlugin;
@@ -1,31 +1,31 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const CaseSensitiveModulesWarning = require("./CaseSensitiveModulesWarning");
8
-
9
- class WarnCaseSensitiveModulesPlugin {
10
- apply(compiler) {
11
- compiler.plugin("compilation", compilation => {
12
- compilation.plugin("seal", () => {
13
- const moduleWithoutCase = Object.create(null);
14
- compilation.modules.forEach(module => {
15
- const identifier = module.identifier().toLowerCase();
16
- if(moduleWithoutCase[identifier]) {
17
- moduleWithoutCase[identifier].push(module);
18
- } else {
19
- moduleWithoutCase[identifier] = [module];
20
- }
21
- });
22
- Object.keys(moduleWithoutCase).forEach(key => {
23
- if(moduleWithoutCase[key].length > 1)
24
- compilation.warnings.push(new CaseSensitiveModulesWarning(moduleWithoutCase[key]));
25
- });
26
- });
27
- });
28
- }
29
- }
30
-
31
- module.exports = WarnCaseSensitiveModulesPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const CaseSensitiveModulesWarning = require("./CaseSensitiveModulesWarning");
8
+
9
+ class WarnCaseSensitiveModulesPlugin {
10
+ apply(compiler) {
11
+ compiler.plugin("compilation", compilation => {
12
+ compilation.plugin("seal", () => {
13
+ const moduleWithoutCase = Object.create(null);
14
+ compilation.modules.forEach(module => {
15
+ const identifier = module.identifier().toLowerCase();
16
+ if(moduleWithoutCase[identifier]) {
17
+ moduleWithoutCase[identifier].push(module);
18
+ } else {
19
+ moduleWithoutCase[identifier] = [module];
20
+ }
21
+ });
22
+ Object.keys(moduleWithoutCase).forEach(key => {
23
+ if(moduleWithoutCase[key].length > 1)
24
+ compilation.warnings.push(new CaseSensitiveModulesWarning(moduleWithoutCase[key]));
25
+ });
26
+ });
27
+ });
28
+ }
29
+ }
30
+
31
+ module.exports = WarnCaseSensitiveModulesPlugin;
@@ -1,49 +1,49 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- class WatchIgnorePlugin {
8
- constructor(paths) {
9
- this.paths = paths;
10
- }
11
-
12
- apply(compiler) {
13
- compiler.plugin("after-environment", () => {
14
- compiler.watchFileSystem = new IgnoringWatchFileSystem(compiler.watchFileSystem, this.paths);
15
- });
16
- }
17
- }
18
-
19
- module.exports = WatchIgnorePlugin;
20
-
21
- class IgnoringWatchFileSystem {
22
- constructor(wfs, paths) {
23
- this.wfs = wfs;
24
- this.paths = paths;
25
- }
26
-
27
- watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) {
28
- const ignored = path => this.paths.some(p => p instanceof RegExp ? p.test(path) : path.indexOf(p) === 0);
29
-
30
- const notIgnored = path => !ignored(path);
31
-
32
- const ignoredFiles = files.filter(ignored);
33
- const ignoredDirs = dirs.filter(ignored);
34
-
35
- this.wfs.watch(files.filter(notIgnored), dirs.filter(notIgnored), missing, startTime, options, (err, filesModified, dirsModified, missingModified, fileTimestamps, dirTimestamps) => {
36
- if(err) return callback(err);
37
-
38
- ignoredFiles.forEach(path => {
39
- fileTimestamps[path] = 1;
40
- });
41
-
42
- ignoredDirs.forEach(path => {
43
- dirTimestamps[path] = 1;
44
- });
45
-
46
- callback(err, filesModified, dirsModified, missingModified, fileTimestamps, dirTimestamps);
47
- }, callbackUndelayed);
48
- }
49
- }
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class WatchIgnorePlugin {
8
+ constructor(paths) {
9
+ this.paths = paths;
10
+ }
11
+
12
+ apply(compiler) {
13
+ compiler.plugin("after-environment", () => {
14
+ compiler.watchFileSystem = new IgnoringWatchFileSystem(compiler.watchFileSystem, this.paths);
15
+ });
16
+ }
17
+ }
18
+
19
+ module.exports = WatchIgnorePlugin;
20
+
21
+ class IgnoringWatchFileSystem {
22
+ constructor(wfs, paths) {
23
+ this.wfs = wfs;
24
+ this.paths = paths;
25
+ }
26
+
27
+ watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) {
28
+ const ignored = path => this.paths.some(p => p instanceof RegExp ? p.test(path) : path.indexOf(p) === 0);
29
+
30
+ const notIgnored = path => !ignored(path);
31
+
32
+ const ignoredFiles = files.filter(ignored);
33
+ const ignoredDirs = dirs.filter(ignored);
34
+
35
+ this.wfs.watch(files.filter(notIgnored), dirs.filter(notIgnored), missing, startTime, options, (err, filesModified, dirsModified, missingModified, fileTimestamps, dirTimestamps) => {
36
+ if(err) return callback(err);
37
+
38
+ ignoredFiles.forEach(path => {
39
+ fileTimestamps[path] = 1;
40
+ });
41
+
42
+ ignoredDirs.forEach(path => {
43
+ dirTimestamps[path] = 1;
44
+ });
45
+
46
+ callback(err, filesModified, dirsModified, missingModified, fileTimestamps, dirTimestamps);
47
+ }, callbackUndelayed);
48
+ }
49
+ }
@@ -1,11 +1,11 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Jarid Margolin @jaridmargolin
4
- */
5
- "use strict";
6
-
7
- module.exports = class WebpackError extends Error {
8
- inspect() {
9
- return this.stack + (this.details ? `\n${this.details}` : "");
10
- }
11
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Jarid Margolin @jaridmargolin
4
+ */
5
+ "use strict";
6
+
7
+ module.exports = class WebpackError extends Error {
8
+ inspect() {
9
+ return this.stack + (this.details ? `\n${this.details}` : "");
10
+ }
11
+ };