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,88 +1,88 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- const AliasPlugin = require("enhanced-resolve/lib/AliasPlugin");
7
- const ParserHelpers = require("../ParserHelpers");
8
- const nodeLibsBrowser = require("node-libs-browser");
9
-
10
- module.exports = class NodeSourcePlugin {
11
- constructor(options) {
12
- this.options = options;
13
- }
14
- apply(compiler) {
15
- const options = this.options;
16
- if(options === false) // allow single kill switch to turn off this plugin
17
- return;
18
-
19
- function getPathToModule(module, type) {
20
- if(type === true || (type === undefined && nodeLibsBrowser[module])) {
21
- if(!nodeLibsBrowser[module]) throw new Error(`No browser version for node.js core module ${module} available`);
22
- return nodeLibsBrowser[module];
23
- } else if(type === "mock") {
24
- return require.resolve(`node-libs-browser/mock/${module}`);
25
- } else if(type === "empty") {
26
- return require.resolve("node-libs-browser/mock/empty");
27
- } else return module;
28
- }
29
-
30
- function addExpression(parser, name, module, type, suffix) {
31
- suffix = suffix || "";
32
- parser.plugin(`expression ${name}`, function() {
33
- if(this.state.module && this.state.module.resource === getPathToModule(module, type)) return;
34
- const mockModule = ParserHelpers.requireFileAsExpression(this.state.module.context, getPathToModule(module, type));
35
- return ParserHelpers.addParsedVariableToModule(this, name, mockModule + suffix);
36
- });
37
- }
38
-
39
- compiler.plugin("compilation", function(compilation, params) {
40
- params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
41
-
42
- if(parserOptions.node === false)
43
- return;
44
-
45
- let localOptions = options;
46
- if(parserOptions.node)
47
- localOptions = Object.assign({}, localOptions, parserOptions.node);
48
-
49
- if(localOptions.global) {
50
- parser.plugin("expression global", function() {
51
- const retrieveGlobalModule = ParserHelpers.requireFileAsExpression(this.state.module.context, require.resolve("../../buildin/global.js"));
52
- return ParserHelpers.addParsedVariableToModule(this, "global", retrieveGlobalModule);
53
- });
54
- }
55
- if(localOptions.process) {
56
- const processType = localOptions.process;
57
- addExpression(parser, "process", "process", processType);
58
- }
59
- if(localOptions.console) {
60
- const consoleType = localOptions.console;
61
- addExpression(parser, "console", "console", consoleType);
62
- }
63
- const bufferType = localOptions.Buffer;
64
- if(bufferType) {
65
- addExpression(parser, "Buffer", "buffer", bufferType, ".Buffer");
66
- }
67
- if(localOptions.setImmediate) {
68
- const setImmediateType = localOptions.setImmediate;
69
- addExpression(parser, "setImmediate", "timers", setImmediateType, ".setImmediate");
70
- addExpression(parser, "clearImmediate", "timers", setImmediateType, ".clearImmediate");
71
- }
72
- });
73
- });
74
- compiler.plugin("after-resolvers", (compiler) => {
75
- Object.keys(nodeLibsBrowser).forEach((lib) => {
76
- if(options[lib] !== false) {
77
- compiler.resolvers.normal.apply(
78
- new AliasPlugin("described-resolve", {
79
- name: lib,
80
- onlyModule: true,
81
- alias: getPathToModule(lib, options[lib])
82
- }, "resolve")
83
- );
84
- }
85
- });
86
- });
87
- }
88
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const AliasPlugin = require("enhanced-resolve/lib/AliasPlugin");
7
+ const ParserHelpers = require("../ParserHelpers");
8
+ const nodeLibsBrowser = require("node-libs-browser");
9
+
10
+ module.exports = class NodeSourcePlugin {
11
+ constructor(options) {
12
+ this.options = options;
13
+ }
14
+ apply(compiler) {
15
+ const options = this.options;
16
+ if(options === false) // allow single kill switch to turn off this plugin
17
+ return;
18
+
19
+ function getPathToModule(module, type) {
20
+ if(type === true || (type === undefined && nodeLibsBrowser[module])) {
21
+ if(!nodeLibsBrowser[module]) throw new Error(`No browser version for node.js core module ${module} available`);
22
+ return nodeLibsBrowser[module];
23
+ } else if(type === "mock") {
24
+ return require.resolve(`node-libs-browser/mock/${module}`);
25
+ } else if(type === "empty") {
26
+ return require.resolve("node-libs-browser/mock/empty");
27
+ } else return module;
28
+ }
29
+
30
+ function addExpression(parser, name, module, type, suffix) {
31
+ suffix = suffix || "";
32
+ parser.plugin(`expression ${name}`, function() {
33
+ if(this.state.module && this.state.module.resource === getPathToModule(module, type)) return;
34
+ const mockModule = ParserHelpers.requireFileAsExpression(this.state.module.context, getPathToModule(module, type));
35
+ return ParserHelpers.addParsedVariableToModule(this, name, mockModule + suffix);
36
+ });
37
+ }
38
+
39
+ compiler.plugin("compilation", function(compilation, params) {
40
+ params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
41
+
42
+ if(parserOptions.node === false)
43
+ return;
44
+
45
+ let localOptions = options;
46
+ if(parserOptions.node)
47
+ localOptions = Object.assign({}, localOptions, parserOptions.node);
48
+
49
+ if(localOptions.global) {
50
+ parser.plugin("expression global", function() {
51
+ const retrieveGlobalModule = ParserHelpers.requireFileAsExpression(this.state.module.context, require.resolve("../../buildin/global.js"));
52
+ return ParserHelpers.addParsedVariableToModule(this, "global", retrieveGlobalModule);
53
+ });
54
+ }
55
+ if(localOptions.process) {
56
+ const processType = localOptions.process;
57
+ addExpression(parser, "process", "process", processType);
58
+ }
59
+ if(localOptions.console) {
60
+ const consoleType = localOptions.console;
61
+ addExpression(parser, "console", "console", consoleType);
62
+ }
63
+ const bufferType = localOptions.Buffer;
64
+ if(bufferType) {
65
+ addExpression(parser, "Buffer", "buffer", bufferType, ".Buffer");
66
+ }
67
+ if(localOptions.setImmediate) {
68
+ const setImmediateType = localOptions.setImmediate;
69
+ addExpression(parser, "setImmediate", "timers", setImmediateType, ".setImmediate");
70
+ addExpression(parser, "clearImmediate", "timers", setImmediateType, ".clearImmediate");
71
+ }
72
+ });
73
+ });
74
+ compiler.plugin("after-resolvers", (compiler) => {
75
+ Object.keys(nodeLibsBrowser).forEach((lib) => {
76
+ if(options[lib] !== false) {
77
+ compiler.resolvers.normal.apply(
78
+ new AliasPlugin("described-resolve", {
79
+ name: lib,
80
+ onlyModule: true,
81
+ alias: getPathToModule(lib, options[lib])
82
+ }, "resolve")
83
+ );
84
+ }
85
+ });
86
+ });
87
+ }
88
+ };
@@ -1,15 +1,15 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const ExternalsPlugin = require("../ExternalsPlugin");
8
-
9
- class NodeTargetPlugin {
10
- apply(compiler) {
11
- new ExternalsPlugin("commonjs", Object.keys(process.binding("natives"))).apply(compiler);
12
- }
13
- }
14
-
15
- module.exports = NodeTargetPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const ExternalsPlugin = require("../ExternalsPlugin");
8
+
9
+ class NodeTargetPlugin {
10
+ apply(compiler) {
11
+ new ExternalsPlugin("commonjs", Object.keys(process.binding("natives"))).apply(compiler);
12
+ }
13
+ }
14
+
15
+ module.exports = NodeTargetPlugin;
@@ -1,27 +1,27 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
-
6
- "use strict";
7
-
8
- const NodeMainTemplatePlugin = require("./NodeMainTemplatePlugin");
9
- const NodeChunkTemplatePlugin = require("./NodeChunkTemplatePlugin");
10
- const NodeHotUpdateChunkTemplatePlugin = require("./NodeHotUpdateChunkTemplatePlugin");
11
-
12
- class NodeTemplatePlugin {
13
- constructor(options) {
14
- options = options || {};
15
- this.asyncChunkLoading = options.asyncChunkLoading;
16
- }
17
-
18
- apply(compiler) {
19
- compiler.plugin("this-compilation", (compilation) => {
20
- compilation.mainTemplate.apply(new NodeMainTemplatePlugin(this.asyncChunkLoading));
21
- compilation.chunkTemplate.apply(new NodeChunkTemplatePlugin());
22
- compilation.hotUpdateChunkTemplate.apply(new NodeHotUpdateChunkTemplatePlugin());
23
- });
24
- }
25
- }
26
-
27
- module.exports = NodeTemplatePlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const NodeMainTemplatePlugin = require("./NodeMainTemplatePlugin");
9
+ const NodeChunkTemplatePlugin = require("./NodeChunkTemplatePlugin");
10
+ const NodeHotUpdateChunkTemplatePlugin = require("./NodeHotUpdateChunkTemplatePlugin");
11
+
12
+ class NodeTemplatePlugin {
13
+ constructor(options) {
14
+ options = options || {};
15
+ this.asyncChunkLoading = options.asyncChunkLoading;
16
+ }
17
+
18
+ apply(compiler) {
19
+ compiler.plugin("this-compilation", (compilation) => {
20
+ compilation.mainTemplate.apply(new NodeMainTemplatePlugin(this.asyncChunkLoading));
21
+ compilation.chunkTemplate.apply(new NodeChunkTemplatePlugin());
22
+ compilation.hotUpdateChunkTemplate.apply(new NodeHotUpdateChunkTemplatePlugin());
23
+ });
24
+ }
25
+ }
26
+
27
+ module.exports = NodeTemplatePlugin;
@@ -1,72 +1,72 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- const Watchpack = require("watchpack");
8
-
9
- class NodeWatchFileSystem {
10
- constructor(inputFileSystem) {
11
- this.inputFileSystem = inputFileSystem;
12
- this.watcherOptions = {
13
- aggregateTimeout: 0
14
- };
15
- this.watcher = new Watchpack(this.watcherOptions);
16
- }
17
-
18
- watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) {
19
- if(!Array.isArray(files))
20
- throw new Error("Invalid arguments: 'files'");
21
- if(!Array.isArray(dirs))
22
- throw new Error("Invalid arguments: 'dirs'");
23
- if(!Array.isArray(missing))
24
- throw new Error("Invalid arguments: 'missing'");
25
- if(typeof callback !== "function")
26
- throw new Error("Invalid arguments: 'callback'");
27
- if(typeof startTime !== "number" && startTime)
28
- throw new Error("Invalid arguments: 'startTime'");
29
- if(typeof options !== "object")
30
- throw new Error("Invalid arguments: 'options'");
31
- if(typeof callbackUndelayed !== "function" && callbackUndelayed)
32
- throw new Error("Invalid arguments: 'callbackUndelayed'");
33
- const oldWatcher = this.watcher;
34
- this.watcher = new Watchpack(options);
35
-
36
- if(callbackUndelayed)
37
- this.watcher.once("change", callbackUndelayed);
38
-
39
- this.watcher.once("aggregated", (changes, removals) => {
40
- changes = changes.concat(removals);
41
- if(this.inputFileSystem && this.inputFileSystem.purge) {
42
- this.inputFileSystem.purge(changes);
43
- }
44
- const times = this.watcher.getTimes();
45
- callback(null,
46
- changes.filter(file => files.indexOf(file) >= 0).sort(),
47
- changes.filter(file => dirs.indexOf(file) >= 0).sort(),
48
- changes.filter(file => missing.indexOf(file) >= 0).sort(), times, times);
49
- });
50
-
51
- this.watcher.watch(files.concat(missing), dirs.concat(missing), startTime);
52
-
53
- if(oldWatcher) {
54
- oldWatcher.close();
55
- }
56
- return {
57
- close: () => {
58
- if(this.watcher) {
59
- this.watcher.close();
60
- this.watcher = null;
61
- }
62
- },
63
- pause: () => {
64
- if(this.watcher) {
65
- this.watcher.pause();
66
- }
67
- }
68
- };
69
- }
70
- }
71
-
72
- module.exports = NodeWatchFileSystem;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const Watchpack = require("watchpack");
8
+
9
+ class NodeWatchFileSystem {
10
+ constructor(inputFileSystem) {
11
+ this.inputFileSystem = inputFileSystem;
12
+ this.watcherOptions = {
13
+ aggregateTimeout: 0
14
+ };
15
+ this.watcher = new Watchpack(this.watcherOptions);
16
+ }
17
+
18
+ watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) {
19
+ if(!Array.isArray(files))
20
+ throw new Error("Invalid arguments: 'files'");
21
+ if(!Array.isArray(dirs))
22
+ throw new Error("Invalid arguments: 'dirs'");
23
+ if(!Array.isArray(missing))
24
+ throw new Error("Invalid arguments: 'missing'");
25
+ if(typeof callback !== "function")
26
+ throw new Error("Invalid arguments: 'callback'");
27
+ if(typeof startTime !== "number" && startTime)
28
+ throw new Error("Invalid arguments: 'startTime'");
29
+ if(typeof options !== "object")
30
+ throw new Error("Invalid arguments: 'options'");
31
+ if(typeof callbackUndelayed !== "function" && callbackUndelayed)
32
+ throw new Error("Invalid arguments: 'callbackUndelayed'");
33
+ const oldWatcher = this.watcher;
34
+ this.watcher = new Watchpack(options);
35
+
36
+ if(callbackUndelayed)
37
+ this.watcher.once("change", callbackUndelayed);
38
+
39
+ this.watcher.once("aggregated", (changes, removals) => {
40
+ changes = changes.concat(removals);
41
+ if(this.inputFileSystem && this.inputFileSystem.purge) {
42
+ this.inputFileSystem.purge(changes);
43
+ }
44
+ const times = this.watcher.getTimes();
45
+ callback(null,
46
+ changes.filter(file => files.indexOf(file) >= 0).sort(),
47
+ changes.filter(file => dirs.indexOf(file) >= 0).sort(),
48
+ changes.filter(file => missing.indexOf(file) >= 0).sort(), times, times);
49
+ });
50
+
51
+ this.watcher.watch(files.concat(missing), dirs.concat(missing), startTime);
52
+
53
+ if(oldWatcher) {
54
+ oldWatcher.close();
55
+ }
56
+ return {
57
+ close: () => {
58
+ if(this.watcher) {
59
+ this.watcher.close();
60
+ this.watcher = null;
61
+ }
62
+ },
63
+ pause: () => {
64
+ if(this.watcher) {
65
+ this.watcher.pause();
66
+ }
67
+ }
68
+ };
69
+ }
70
+ }
71
+
72
+ module.exports = NodeWatchFileSystem;
@@ -1,53 +1,53 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
- class ChunkModuleIdRangePlugin {
7
- constructor(options) {
8
- this.options = options;
9
- }
10
- apply(compiler) {
11
- const options = this.options;
12
- compiler.plugin("compilation", (compilation) => {
13
- compilation.plugin("module-ids", (modules) => {
14
- const chunk = this.chunks.find((chunk) => chunk.name === options.name);
15
- if(!chunk) throw new Error("ChunkModuleIdRangePlugin: Chunk with name '" + options.name + "' was not found");
16
- let currentId = options.start;
17
- let chunkModules;
18
- if(options.order) {
19
- chunkModules = chunk.modules.slice();
20
- switch(options.order) {
21
- case "index":
22
- chunkModules.sort((a, b) => {
23
- return a.index - b.index;
24
- });
25
- break;
26
- case "index2":
27
- chunkModules.sort((a, b) => {
28
- return a.index2 - b.index2;
29
- });
30
- break;
31
- default:
32
- throw new Error("ChunkModuleIdRangePlugin: unexpected value of order");
33
- }
34
-
35
- } else {
36
- chunkModules = modules.filter((m) => {
37
- return m.chunks.indexOf(chunk) >= 0;
38
- });
39
- }
40
-
41
- for(let i = 0; i < chunkModules.length; i++) {
42
- const m = chunkModules[i];
43
- if(m.id === null) {
44
- m.id = currentId++;
45
- }
46
- if(options.end && currentId > options.end)
47
- break;
48
- }
49
- });
50
- });
51
- }
52
- }
53
- module.exports = ChunkModuleIdRangePlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ class ChunkModuleIdRangePlugin {
7
+ constructor(options) {
8
+ this.options = options;
9
+ }
10
+ apply(compiler) {
11
+ const options = this.options;
12
+ compiler.plugin("compilation", (compilation) => {
13
+ compilation.plugin("module-ids", (modules) => {
14
+ const chunk = this.chunks.find((chunk) => chunk.name === options.name);
15
+ if(!chunk) throw new Error("ChunkModuleIdRangePlugin: Chunk with name '" + options.name + "' was not found");
16
+ let currentId = options.start;
17
+ let chunkModules;
18
+ if(options.order) {
19
+ chunkModules = chunk.modules.slice();
20
+ switch(options.order) {
21
+ case "index":
22
+ chunkModules.sort((a, b) => {
23
+ return a.index - b.index;
24
+ });
25
+ break;
26
+ case "index2":
27
+ chunkModules.sort((a, b) => {
28
+ return a.index2 - b.index2;
29
+ });
30
+ break;
31
+ default:
32
+ throw new Error("ChunkModuleIdRangePlugin: unexpected value of order");
33
+ }
34
+
35
+ } else {
36
+ chunkModules = modules.filter((m) => {
37
+ return m.chunks.indexOf(chunk) >= 0;
38
+ });
39
+ }
40
+
41
+ for(let i = 0; i < chunkModules.length; i++) {
42
+ const m = chunkModules[i];
43
+ if(m.id === null) {
44
+ m.id = currentId++;
45
+ }
46
+ if(options.end && currentId > options.end)
47
+ break;
48
+ }
49
+ });
50
+ });
51
+ }
52
+ }
53
+ module.exports = ChunkModuleIdRangePlugin;
@@ -1,15 +1,15 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- "use strict";
6
-
7
- class DedupePlugin {
8
- apply(compiler) {
9
- compiler.plugin("compilation", (compilation) => {
10
- compilation.warnings.push(new Error("DedupePlugin: This plugin was removed from webpack. Remove it from your configuration."));
11
- });
12
- }
13
- }
14
-
15
- module.exports = DedupePlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class DedupePlugin {
8
+ apply(compiler) {
9
+ compiler.plugin("compilation", (compilation) => {
10
+ compilation.warnings.push(new Error("DedupePlugin: This plugin was removed from webpack. Remove it from your configuration."));
11
+ });
12
+ }
13
+ }
14
+
15
+ module.exports = DedupePlugin;
@@ -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
-
7
- class FlagIncludedChunksPlugin {
8
-
9
- apply(compiler) {
10
- compiler.plugin("compilation", (compilation) => {
11
- compilation.plugin("optimize-chunk-ids", (chunks) => {
12
- chunks.forEach((chunkA) => {
13
- chunks.forEach((chunkB) => {
14
- // as we iterate the same iterables twice
15
- // skip if we find ourselves
16
- if(chunkA === chunkB) return;
17
-
18
- // instead of swapping A and B just bail
19
- // as we loop twice the current A will be B and B then A
20
- if(chunkA.getNumberOfModules() < chunkB.getNumberOfModules()) return;
21
-
22
- if(chunkB.getNumberOfModules() === 0) return;
23
-
24
- // is chunkB in chunkA?
25
- for(const m of chunkB.modulesIterable) {
26
- if(!chunkA.containsModule(m)) return;
27
- }
28
- chunkA.ids.push(chunkB.id);
29
- });
30
- });
31
- });
32
- });
33
- }
34
- }
35
- module.exports = FlagIncludedChunksPlugin;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class FlagIncludedChunksPlugin {
8
+
9
+ apply(compiler) {
10
+ compiler.plugin("compilation", (compilation) => {
11
+ compilation.plugin("optimize-chunk-ids", (chunks) => {
12
+ chunks.forEach((chunkA) => {
13
+ chunks.forEach((chunkB) => {
14
+ // as we iterate the same iterables twice
15
+ // skip if we find ourselves
16
+ if(chunkA === chunkB) return;
17
+
18
+ // instead of swapping A and B just bail
19
+ // as we loop twice the current A will be B and B then A
20
+ if(chunkA.getNumberOfModules() < chunkB.getNumberOfModules()) return;
21
+
22
+ if(chunkB.getNumberOfModules() === 0) return;
23
+
24
+ // is chunkB in chunkA?
25
+ for(const m of chunkB.modulesIterable) {
26
+ if(!chunkA.containsModule(m)) return;
27
+ }
28
+ chunkA.ids.push(chunkB.id);
29
+ });
30
+ });
31
+ });
32
+ });
33
+ }
34
+ }
35
+ module.exports = FlagIncludedChunksPlugin;