webpack 3.8.0 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +716 -716
  3. package/buildin/.eslintrc +7 -7
  4. package/buildin/amd-define.js +3 -3
  5. package/buildin/amd-options.js +2 -2
  6. package/buildin/global.js +21 -21
  7. package/buildin/harmony-module.js +24 -24
  8. package/buildin/module.js +22 -22
  9. package/buildin/system.js +7 -7
  10. package/hot/.eslintrc +9 -9
  11. package/hot/dev-server.js +53 -53
  12. package/hot/emitter.js +2 -2
  13. package/hot/log-apply-result.js +38 -38
  14. package/hot/log.js +44 -44
  15. package/hot/only-dev-server.js +71 -71
  16. package/hot/poll.js +34 -34
  17. package/hot/signal.js +51 -51
  18. package/lib/APIPlugin.js +45 -45
  19. package/lib/AsyncDependenciesBlock.js +43 -43
  20. package/lib/AutomaticPrefetchPlugin.js +36 -36
  21. package/lib/BasicEvaluatedExpression.js +203 -203
  22. package/lib/CaseSensitiveModulesWarning.js +49 -49
  23. package/lib/ChunkRenderError.js +24 -24
  24. package/lib/ChunkTemplate.js +36 -36
  25. package/lib/CompatibilityPlugin.js +57 -57
  26. package/lib/Compiler.js +523 -523
  27. package/lib/ConstPlugin.js +60 -60
  28. package/lib/ContextModule.js +431 -431
  29. package/lib/ContextReplacementPlugin.js +111 -111
  30. package/lib/DefinePlugin.js +123 -123
  31. package/lib/DelegatedModule.js +98 -98
  32. package/lib/DelegatedModuleFactoryPlugin.js +59 -59
  33. package/lib/DelegatedPlugin.js +30 -30
  34. package/lib/DependenciesBlockVariable.js +51 -51
  35. package/lib/DllEntryPlugin.js +37 -37
  36. package/lib/DllModule.js +58 -58
  37. package/lib/DllModuleFactory.js +20 -20
  38. package/lib/DllPlugin.js +38 -38
  39. package/lib/DllReferencePlugin.js +62 -62
  40. package/lib/DynamicEntryPlugin.js +59 -59
  41. package/lib/EntryModuleNotFoundError.js +22 -22
  42. package/lib/EntryOptionPlugin.js +31 -31
  43. package/lib/EnvironmentPlugin.js +50 -50
  44. package/lib/ErrorHelpers.js +31 -31
  45. package/lib/EvalDevToolModulePlugin.js +22 -22
  46. package/lib/EvalDevToolModuleTemplatePlugin.js +33 -33
  47. package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +75 -75
  48. package/lib/EvalSourceMapDevToolPlugin.js +32 -32
  49. package/lib/ExportPropertyMainTemplatePlugin.js +31 -31
  50. package/lib/ExtendedAPIPlugin.js +47 -47
  51. package/lib/ExternalModuleFactoryPlugin.js +91 -91
  52. package/lib/ExternalsPlugin.js +21 -21
  53. package/lib/FlagDependencyExportsPlugin.js +101 -101
  54. package/lib/FunctionModulePlugin.js +24 -24
  55. package/lib/HashedModuleIdsPlugin.js +42 -42
  56. package/lib/HotUpdateChunkTemplate.js +31 -31
  57. package/lib/IgnorePlugin.js +69 -69
  58. package/lib/JsonpExportMainTemplatePlugin.js +37 -37
  59. package/lib/JsonpHotUpdateChunkTemplatePlugin.js +27 -27
  60. package/lib/JsonpTemplatePlugin.js +21 -21
  61. package/lib/LibManifestPlugin.js +63 -63
  62. package/lib/LibraryTemplatePlugin.js +92 -92
  63. package/lib/LoaderOptionsPlugin.js +36 -36
  64. package/lib/LoaderTargetPlugin.js +19 -19
  65. package/lib/MemoryOutputFileSystem.js +5 -5
  66. package/lib/ModuleBuildError.js +42 -42
  67. package/lib/ModuleDependencyError.js +22 -22
  68. package/lib/ModuleDependencyWarning.js +22 -22
  69. package/lib/ModuleError.js +24 -24
  70. package/lib/ModuleFilenameHelpers.js +162 -162
  71. package/lib/ModuleNotFoundError.js +26 -26
  72. package/lib/ModuleReason.js +50 -50
  73. package/lib/ModuleTemplate.js +23 -23
  74. package/lib/ModuleWarning.js +24 -24
  75. package/lib/MovedToPluginWarningPlugin.js +21 -21
  76. package/lib/MultiCompiler.js +164 -164
  77. package/lib/MultiEntryPlugin.js +39 -39
  78. package/lib/MultiModuleFactory.js +19 -19
  79. package/lib/MultiStats.js +79 -79
  80. package/lib/MultiWatching.js +32 -32
  81. package/lib/NamedChunksPlugin.js +30 -30
  82. package/lib/NamedModulesPlugin.js +27 -27
  83. package/lib/NewWatchingPlugin.js +15 -15
  84. package/lib/NoEmitOnErrorsPlugin.js +22 -22
  85. package/lib/NoErrorsPlugin.js +29 -29
  86. package/lib/NodeStuffPlugin.js +97 -97
  87. package/lib/NormalModuleReplacementPlugin.js +45 -45
  88. package/lib/NullFactory.js +12 -12
  89. package/lib/OptionsApply.js +10 -10
  90. package/lib/ParserHelpers.js +85 -85
  91. package/lib/PrefetchPlugin.js +31 -31
  92. package/lib/ProgressPlugin.js +192 -192
  93. package/lib/ProvidePlugin.js +55 -55
  94. package/lib/RawModule.js +54 -54
  95. package/lib/RequestShortener.js +63 -63
  96. package/lib/RequireJsStuffPlugin.js +31 -31
  97. package/lib/RuleSet.js +444 -444
  98. package/lib/SetVarMainTemplatePlugin.js +41 -41
  99. package/lib/SingleEntryPlugin.js +35 -35
  100. package/lib/SizeFormatHelpers.js +18 -18
  101. package/lib/SourceMapDevToolModuleOptionsPlugin.js +37 -37
  102. package/lib/UnsupportedFeatureWarning.js +21 -21
  103. package/lib/UseStrictPlugin.js +34 -34
  104. package/lib/WarnCaseSensitiveModulesPlugin.js +31 -31
  105. package/lib/WatchIgnorePlugin.js +49 -49
  106. package/lib/WebpackError.js +11 -11
  107. package/lib/WebpackOptionsDefaulter.js +129 -129
  108. package/lib/WebpackOptionsValidationError.js +196 -196
  109. package/lib/compareLocations.js +36 -36
  110. package/lib/dependencies/AMDDefineDependency.js +142 -142
  111. package/lib/dependencies/AMDPlugin.js +119 -119
  112. package/lib/dependencies/AMDRequireDependenciesBlock.js +33 -33
  113. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +177 -177
  114. package/lib/dependencies/AMDRequireDependency.js +67 -67
  115. package/lib/dependencies/AMDRequireItemDependency.js +22 -22
  116. package/lib/dependencies/CommonJsRequireDependency.js +22 -22
  117. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +89 -89
  118. package/lib/dependencies/ConstDependency.js +32 -32
  119. package/lib/dependencies/ContextDependencyHelpers.js +71 -71
  120. package/lib/dependencies/ContextElementDependency.js +21 -21
  121. package/lib/dependencies/CriticalDependencyWarning.js +20 -20
  122. package/lib/dependencies/DelegatedExportsDependency.js +33 -33
  123. package/lib/dependencies/DelegatedSourceDependency.js +18 -18
  124. package/lib/dependencies/DllEntryDependency.js +20 -20
  125. package/lib/dependencies/HarmonyCompatibilityDependency.js +30 -30
  126. package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
  127. package/lib/dependencies/ImportDependenciesBlock.js +17 -17
  128. package/lib/dependencies/ImportEagerContextDependency.js +22 -22
  129. package/lib/dependencies/ImportLazyContextDependency.js +22 -22
  130. package/lib/dependencies/ImportLazyOnceContextDependency.js +22 -22
  131. package/lib/dependencies/ImportParserPlugin.js +89 -89
  132. package/lib/dependencies/ImportPlugin.js +60 -60
  133. package/lib/dependencies/ImportWeakContextDependency.js +22 -22
  134. package/lib/dependencies/LoaderDependency.js +18 -18
  135. package/lib/dependencies/LoaderPlugin.js +60 -60
  136. package/lib/dependencies/LocalModule.js +23 -23
  137. package/lib/dependencies/LocalModuleDependency.js +24 -24
  138. package/lib/dependencies/LocalModulesHelpers.js +46 -46
  139. package/lib/dependencies/ModuleDependency.js +23 -23
  140. package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
  141. package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
  142. package/lib/dependencies/MultiEntryDependency.js +20 -20
  143. package/lib/dependencies/NullDependency.js +24 -24
  144. package/lib/dependencies/PrefetchDependency.js +18 -18
  145. package/lib/dependencies/RequireContextDependency.js +26 -26
  146. package/lib/dependencies/RequireContextDependencyParserPlugin.js +50 -50
  147. package/lib/dependencies/RequireContextPlugin.js +96 -96
  148. package/lib/dependencies/RequireEnsureDependenciesBlock.js +22 -22
  149. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +102 -102
  150. package/lib/dependencies/RequireEnsureDependency.js +38 -38
  151. package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
  152. package/lib/dependencies/RequireEnsurePlugin.js +40 -40
  153. package/lib/dependencies/RequireHeaderDependency.js +26 -26
  154. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +21 -21
  155. package/lib/dependencies/RequireIncludePlugin.js +33 -33
  156. package/lib/dependencies/RequireResolveDependency.js +22 -22
  157. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +71 -71
  158. package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
  159. package/lib/dependencies/SingleEntryDependency.js +18 -18
  160. package/lib/dependencies/SystemPlugin.js +44 -44
  161. package/lib/dependencies/UnsupportedDependency.js +23 -23
  162. package/lib/dependencies/WebpackMissingModule.js +18 -18
  163. package/lib/dependencies/getFunctionExpression.js +44 -44
  164. package/lib/formatLocation.js +54 -54
  165. package/lib/node/NodeChunkTemplatePlugin.js +27 -27
  166. package/lib/node/NodeEnvironmentPlugin.js +25 -25
  167. package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +27 -27
  168. package/lib/node/NodeMainTemplate.runtime.js +24 -24
  169. package/lib/node/NodeMainTemplateAsync.runtime.js +40 -40
  170. package/lib/node/NodeOutputFileSystem.js +22 -22
  171. package/lib/node/NodeSourcePlugin.js +88 -88
  172. package/lib/node/NodeTargetPlugin.js +15 -15
  173. package/lib/node/NodeTemplatePlugin.js +27 -27
  174. package/lib/node/NodeWatchFileSystem.js +72 -72
  175. package/lib/optimize/ChunkModuleIdRangePlugin.js +53 -53
  176. package/lib/optimize/DedupePlugin.js +15 -15
  177. package/lib/optimize/FlagIncludedChunksPlugin.js +35 -35
  178. package/lib/optimize/LimitChunkCountPlugin.js +59 -59
  179. package/lib/optimize/MinChunkSizePlugin.js +65 -65
  180. package/lib/optimize/RemoveEmptyChunksPlugin.js +21 -21
  181. package/lib/optimize/UglifyJsPlugin.js +9 -9
  182. package/lib/performance/AssetsOverSizeLimitWarning.js +23 -23
  183. package/lib/performance/EntrypointsOverSizeLimitWarning.js +28 -28
  184. package/lib/performance/NoAsyncChunksWarning.js +20 -20
  185. package/lib/performance/SizeLimitsPlugin.js +102 -102
  186. package/lib/prepareOptions.js +29 -29
  187. package/lib/removeAndDo.js +15 -15
  188. package/lib/util/Semaphore.js +32 -32
  189. package/lib/util/identifier.js +38 -38
  190. package/lib/validateSchema.js +66 -66
  191. package/lib/web/WebEnvironmentPlugin.js +18 -18
  192. package/lib/webworker/WebWorkerChunkTemplatePlugin.js +29 -29
  193. package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +28 -28
  194. package/lib/webworker/WebWorkerMainTemplate.runtime.js +58 -58
  195. package/lib/webworker/WebWorkerTemplatePlugin.js +20 -20
  196. package/package.json +1 -1
  197. package/schemas/ajv.absolutePath.js +29 -29
  198. package/schemas/webpackOptionsSchema.json +16 -0
@@ -1,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;
@@ -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
+ };