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.
- package/LICENSE +20 -20
- package/README.md +716 -716
- package/buildin/.eslintrc +7 -7
- package/buildin/amd-define.js +3 -3
- package/buildin/amd-options.js +2 -2
- package/buildin/global.js +21 -21
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/buildin/system.js +7 -7
- package/hot/.eslintrc +9 -9
- package/hot/dev-server.js +53 -53
- package/hot/emitter.js +2 -2
- package/hot/log-apply-result.js +38 -38
- package/hot/log.js +44 -44
- package/hot/only-dev-server.js +71 -71
- package/hot/poll.js +34 -34
- package/hot/signal.js +51 -51
- package/lib/APIPlugin.js +45 -45
- package/lib/AsyncDependenciesBlock.js +43 -43
- package/lib/AutomaticPrefetchPlugin.js +36 -36
- package/lib/BasicEvaluatedExpression.js +203 -203
- package/lib/CaseSensitiveModulesWarning.js +49 -49
- package/lib/ChunkRenderError.js +24 -24
- package/lib/ChunkTemplate.js +36 -36
- package/lib/CompatibilityPlugin.js +57 -57
- package/lib/Compiler.js +523 -523
- package/lib/ConstPlugin.js +60 -60
- package/lib/ContextModule.js +431 -431
- package/lib/ContextReplacementPlugin.js +111 -111
- package/lib/DefinePlugin.js +123 -123
- package/lib/DelegatedModule.js +98 -98
- package/lib/DelegatedModuleFactoryPlugin.js +59 -59
- package/lib/DelegatedPlugin.js +30 -30
- package/lib/DependenciesBlockVariable.js +51 -51
- package/lib/DllEntryPlugin.js +37 -37
- package/lib/DllModule.js +58 -58
- package/lib/DllModuleFactory.js +20 -20
- package/lib/DllPlugin.js +38 -38
- package/lib/DllReferencePlugin.js +62 -62
- package/lib/DynamicEntryPlugin.js +59 -59
- package/lib/EntryModuleNotFoundError.js +22 -22
- package/lib/EntryOptionPlugin.js +31 -31
- package/lib/EnvironmentPlugin.js +50 -50
- package/lib/ErrorHelpers.js +31 -31
- package/lib/EvalDevToolModulePlugin.js +22 -22
- package/lib/EvalDevToolModuleTemplatePlugin.js +33 -33
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +75 -75
- package/lib/EvalSourceMapDevToolPlugin.js +32 -32
- package/lib/ExportPropertyMainTemplatePlugin.js +31 -31
- package/lib/ExtendedAPIPlugin.js +47 -47
- package/lib/ExternalModuleFactoryPlugin.js +91 -91
- package/lib/ExternalsPlugin.js +21 -21
- package/lib/FlagDependencyExportsPlugin.js +101 -101
- package/lib/FunctionModulePlugin.js +24 -24
- package/lib/HashedModuleIdsPlugin.js +42 -42
- package/lib/HotUpdateChunkTemplate.js +31 -31
- package/lib/IgnorePlugin.js +69 -69
- package/lib/JsonpExportMainTemplatePlugin.js +37 -37
- package/lib/JsonpHotUpdateChunkTemplatePlugin.js +27 -27
- package/lib/JsonpTemplatePlugin.js +21 -21
- package/lib/LibManifestPlugin.js +63 -63
- package/lib/LibraryTemplatePlugin.js +92 -92
- package/lib/LoaderOptionsPlugin.js +36 -36
- package/lib/LoaderTargetPlugin.js +19 -19
- package/lib/MemoryOutputFileSystem.js +5 -5
- package/lib/ModuleBuildError.js +42 -42
- package/lib/ModuleDependencyError.js +22 -22
- package/lib/ModuleDependencyWarning.js +22 -22
- package/lib/ModuleError.js +24 -24
- package/lib/ModuleFilenameHelpers.js +162 -162
- package/lib/ModuleNotFoundError.js +26 -26
- package/lib/ModuleReason.js +50 -50
- package/lib/ModuleTemplate.js +23 -23
- package/lib/ModuleWarning.js +24 -24
- package/lib/MovedToPluginWarningPlugin.js +21 -21
- package/lib/MultiCompiler.js +164 -164
- package/lib/MultiEntryPlugin.js +39 -39
- package/lib/MultiModuleFactory.js +19 -19
- package/lib/MultiStats.js +79 -79
- package/lib/MultiWatching.js +32 -32
- package/lib/NamedChunksPlugin.js +30 -30
- package/lib/NamedModulesPlugin.js +27 -27
- package/lib/NewWatchingPlugin.js +15 -15
- package/lib/NoEmitOnErrorsPlugin.js +22 -22
- package/lib/NoErrorsPlugin.js +29 -29
- package/lib/NodeStuffPlugin.js +97 -97
- package/lib/NormalModuleReplacementPlugin.js +45 -45
- package/lib/NullFactory.js +12 -12
- package/lib/OptionsApply.js +10 -10
- package/lib/ParserHelpers.js +85 -85
- package/lib/PrefetchPlugin.js +31 -31
- package/lib/ProgressPlugin.js +192 -192
- package/lib/ProvidePlugin.js +55 -55
- package/lib/RawModule.js +54 -54
- package/lib/RequestShortener.js +63 -63
- package/lib/RequireJsStuffPlugin.js +31 -31
- package/lib/RuleSet.js +444 -444
- package/lib/SetVarMainTemplatePlugin.js +41 -41
- package/lib/SingleEntryPlugin.js +35 -35
- package/lib/SizeFormatHelpers.js +18 -18
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +37 -37
- package/lib/UnsupportedFeatureWarning.js +21 -21
- package/lib/UseStrictPlugin.js +34 -34
- package/lib/WarnCaseSensitiveModulesPlugin.js +31 -31
- package/lib/WatchIgnorePlugin.js +49 -49
- package/lib/WebpackError.js +11 -11
- package/lib/WebpackOptionsDefaulter.js +129 -129
- package/lib/WebpackOptionsValidationError.js +196 -196
- package/lib/compareLocations.js +36 -36
- package/lib/dependencies/AMDDefineDependency.js +142 -142
- package/lib/dependencies/AMDPlugin.js +119 -119
- package/lib/dependencies/AMDRequireDependenciesBlock.js +33 -33
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +177 -177
- package/lib/dependencies/AMDRequireDependency.js +67 -67
- package/lib/dependencies/AMDRequireItemDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +89 -89
- package/lib/dependencies/ConstDependency.js +32 -32
- package/lib/dependencies/ContextDependencyHelpers.js +71 -71
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/CriticalDependencyWarning.js +20 -20
- package/lib/dependencies/DelegatedExportsDependency.js +33 -33
- package/lib/dependencies/DelegatedSourceDependency.js +18 -18
- package/lib/dependencies/DllEntryDependency.js +20 -20
- package/lib/dependencies/HarmonyCompatibilityDependency.js +30 -30
- package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
- package/lib/dependencies/ImportDependenciesBlock.js +17 -17
- package/lib/dependencies/ImportEagerContextDependency.js +22 -22
- package/lib/dependencies/ImportLazyContextDependency.js +22 -22
- package/lib/dependencies/ImportLazyOnceContextDependency.js +22 -22
- package/lib/dependencies/ImportParserPlugin.js +89 -89
- package/lib/dependencies/ImportPlugin.js +60 -60
- package/lib/dependencies/ImportWeakContextDependency.js +22 -22
- package/lib/dependencies/LoaderDependency.js +18 -18
- package/lib/dependencies/LoaderPlugin.js +60 -60
- package/lib/dependencies/LocalModule.js +23 -23
- package/lib/dependencies/LocalModuleDependency.js +24 -24
- package/lib/dependencies/LocalModulesHelpers.js +46 -46
- package/lib/dependencies/ModuleDependency.js +23 -23
- package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
- package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
- package/lib/dependencies/MultiEntryDependency.js +20 -20
- package/lib/dependencies/NullDependency.js +24 -24
- package/lib/dependencies/PrefetchDependency.js +18 -18
- package/lib/dependencies/RequireContextDependency.js +26 -26
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +50 -50
- package/lib/dependencies/RequireContextPlugin.js +96 -96
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +22 -22
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +102 -102
- package/lib/dependencies/RequireEnsureDependency.js +38 -38
- package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
- package/lib/dependencies/RequireEnsurePlugin.js +40 -40
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +21 -21
- package/lib/dependencies/RequireIncludePlugin.js +33 -33
- package/lib/dependencies/RequireResolveDependency.js +22 -22
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +71 -71
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SingleEntryDependency.js +18 -18
- package/lib/dependencies/SystemPlugin.js +44 -44
- package/lib/dependencies/UnsupportedDependency.js +23 -23
- package/lib/dependencies/WebpackMissingModule.js +18 -18
- package/lib/dependencies/getFunctionExpression.js +44 -44
- package/lib/formatLocation.js +54 -54
- package/lib/node/NodeChunkTemplatePlugin.js +27 -27
- package/lib/node/NodeEnvironmentPlugin.js +25 -25
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +27 -27
- package/lib/node/NodeMainTemplate.runtime.js +24 -24
- package/lib/node/NodeMainTemplateAsync.runtime.js +40 -40
- package/lib/node/NodeOutputFileSystem.js +22 -22
- package/lib/node/NodeSourcePlugin.js +88 -88
- package/lib/node/NodeTargetPlugin.js +15 -15
- package/lib/node/NodeTemplatePlugin.js +27 -27
- package/lib/node/NodeWatchFileSystem.js +72 -72
- package/lib/optimize/ChunkModuleIdRangePlugin.js +53 -53
- package/lib/optimize/DedupePlugin.js +15 -15
- package/lib/optimize/FlagIncludedChunksPlugin.js +35 -35
- package/lib/optimize/LimitChunkCountPlugin.js +59 -59
- package/lib/optimize/MinChunkSizePlugin.js +65 -65
- package/lib/optimize/RemoveEmptyChunksPlugin.js +21 -21
- package/lib/optimize/UglifyJsPlugin.js +9 -9
- package/lib/performance/AssetsOverSizeLimitWarning.js +23 -23
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +28 -28
- package/lib/performance/NoAsyncChunksWarning.js +20 -20
- package/lib/performance/SizeLimitsPlugin.js +102 -102
- package/lib/prepareOptions.js +29 -29
- package/lib/removeAndDo.js +15 -15
- package/lib/util/Semaphore.js +32 -32
- package/lib/util/identifier.js +38 -38
- package/lib/validateSchema.js +66 -66
- package/lib/web/WebEnvironmentPlugin.js +18 -18
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +29 -29
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +28 -28
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +58 -58
- package/lib/webworker/WebWorkerTemplatePlugin.js +20 -20
- package/package.json +1 -1
- package/schemas/ajv.absolutePath.js +29 -29
- 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;
|