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.
- package/LICENSE +20 -20
- package/README.md +721 -716
- package/bin/webpack.js +12 -8
- 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 +52 -51
- package/lib/APIPlugin.js +45 -45
- package/lib/AsyncDependenciesBlock.js +43 -43
- package/lib/AutomaticPrefetchPlugin.js +36 -36
- package/lib/BannerPlugin.js +4 -2
- package/lib/BasicEvaluatedExpression.js +203 -203
- package/lib/CaseSensitiveModulesWarning.js +49 -49
- package/lib/Chunk.js +2 -2
- package/lib/ChunkRenderError.js +24 -24
- package/lib/ChunkTemplate.js +36 -36
- package/lib/CompatibilityPlugin.js +57 -57
- package/lib/Compilation.js +81 -92
- package/lib/Compiler.js +519 -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 +60 -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/FlagDependencyUsagePlugin.js +1 -1
- package/lib/FunctionModulePlugin.js +24 -24
- package/lib/HashedModuleIdsPlugin.js +42 -42
- package/lib/HotModuleReplacementPlugin.js +5 -5
- 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/JsonpMainTemplatePlugin.js +4 -3
- 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/MainTemplate.js +3 -1
- 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/NormalModuleFactory.js +3 -1
- package/lib/NormalModuleReplacementPlugin.js +45 -45
- package/lib/NullFactory.js +12 -12
- package/lib/OptionsApply.js +10 -10
- package/lib/OptionsDefaulter.js +2 -2
- package/lib/Parser.js +79 -0
- 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/SourceMapDevToolPlugin.js +3 -3
- package/lib/Stats.js +4 -2
- package/lib/TemplatedPathPlugin.js +6 -2
- package/lib/UmdMainTemplatePlugin.js +1 -1
- 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 +130 -129
- package/lib/WebpackOptionsValidationError.js +219 -196
- package/lib/compareLocations.js +36 -36
- package/lib/dependencies/AMDDefineDependency.js +142 -142
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +18 -6
- 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/HarmonyDetectionParserPlugin.js +2 -2
- package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
- package/lib/dependencies/HarmonyImportDependency.js +1 -1
- 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/RequireIncludeDependency.js +8 -0
- 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 +17 -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/ConcatenatedModule.js +17 -6
- 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/WebWorkerMainTemplatePlugin.js +2 -2
- package/lib/webworker/WebWorkerTemplatePlugin.js +20 -20
- package/package.json +25 -16
- package/schemas/ajv.absolutePath.js +29 -29
- package/schemas/webpackOptionsSchema.json +405 -76
@@ -1,22 +1,22 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const fs = require("fs");
|
8
|
-
const path = require("path");
|
9
|
-
const mkdirp = require("mkdirp");
|
10
|
-
|
11
|
-
class NodeOutputFileSystem {
|
12
|
-
constructor() {
|
13
|
-
this.mkdirp = mkdirp;
|
14
|
-
this.mkdir = fs.mkdir.bind(fs);
|
15
|
-
this.rmdir = fs.rmdir.bind(fs);
|
16
|
-
this.unlink = fs.unlink.bind(fs);
|
17
|
-
this.writeFile = fs.writeFile.bind(fs);
|
18
|
-
this.join = path.join.bind(path);
|
19
|
-
}
|
20
|
-
}
|
21
|
-
|
22
|
-
module.exports = NodeOutputFileSystem;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const fs = require("fs");
|
8
|
+
const path = require("path");
|
9
|
+
const mkdirp = require("mkdirp");
|
10
|
+
|
11
|
+
class NodeOutputFileSystem {
|
12
|
+
constructor() {
|
13
|
+
this.mkdirp = mkdirp;
|
14
|
+
this.mkdir = fs.mkdir.bind(fs);
|
15
|
+
this.rmdir = fs.rmdir.bind(fs);
|
16
|
+
this.unlink = fs.unlink.bind(fs);
|
17
|
+
this.writeFile = fs.writeFile.bind(fs);
|
18
|
+
this.join = path.join.bind(path);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
module.exports = NodeOutputFileSystem;
|
@@ -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,17 @@
|
|
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
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
+
const builtins = require("module").builtinModules || Object.keys(process.binding("natives"));
|
10
|
+
|
11
|
+
class NodeTargetPlugin {
|
12
|
+
apply(compiler) {
|
13
|
+
new ExternalsPlugin("commonjs", builtins).apply(compiler);
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
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;
|
@@ -7,6 +7,7 @@
|
|
7
7
|
const Module = require("../Module");
|
8
8
|
const Template = require("../Template");
|
9
9
|
const Parser = require("../Parser");
|
10
|
+
const crypto = require("crypto");
|
10
11
|
const acorn = require("acorn");
|
11
12
|
const escope = require("escope");
|
12
13
|
const ReplaceSource = require("webpack-sources/lib/ReplaceSource");
|
@@ -142,6 +143,7 @@ function getPathInAst(ast, node) {
|
|
142
143
|
}
|
143
144
|
|
144
145
|
function enterNode(n) {
|
146
|
+
if(!n) return undefined;
|
145
147
|
const r = n.range;
|
146
148
|
if(r) {
|
147
149
|
if(r[0] <= nr[0] && r[1] >= nr[1]) {
|
@@ -210,6 +212,7 @@ class ConcatenatedModule extends Module {
|
|
210
212
|
Object.assign(this.assets, m.assets);
|
211
213
|
}
|
212
214
|
}
|
215
|
+
this._identifier = this._createIdentifier();
|
213
216
|
}
|
214
217
|
|
215
218
|
get modules() {
|
@@ -219,12 +222,7 @@ class ConcatenatedModule extends Module {
|
|
219
222
|
}
|
220
223
|
|
221
224
|
identifier() {
|
222
|
-
return this.
|
223
|
-
switch(info.type) {
|
224
|
-
case "concatenated":
|
225
|
-
return info.module.identifier();
|
226
|
-
}
|
227
|
-
}).filter(Boolean).join(" ");
|
225
|
+
return this._identifier;
|
228
226
|
}
|
229
227
|
|
230
228
|
readableIdentifier(requestShortener) {
|
@@ -297,6 +295,19 @@ class ConcatenatedModule extends Module {
|
|
297
295
|
return list;
|
298
296
|
}
|
299
297
|
|
298
|
+
_createIdentifier() {
|
299
|
+
let orderedConcatenationListIdentifiers = "";
|
300
|
+
for(let i = 0; i < this._orderedConcatenationList.length; i++) {
|
301
|
+
if(this._orderedConcatenationList[i].type === "concatenated") {
|
302
|
+
orderedConcatenationListIdentifiers += this._orderedConcatenationList[i].module.identifier();
|
303
|
+
orderedConcatenationListIdentifiers += " ";
|
304
|
+
}
|
305
|
+
}
|
306
|
+
const hash = crypto.createHash("md5");
|
307
|
+
hash.update(orderedConcatenationListIdentifiers);
|
308
|
+
return this.rootModule.identifier() + " " + hash.digest("hex");
|
309
|
+
}
|
310
|
+
|
300
311
|
source(dependencyTemplates, outputOptions, requestShortener) {
|
301
312
|
// Metainfo for each module
|
302
313
|
const modulesWithInfo = this._orderedConcatenationList.map((info, idx) => {
|
@@ -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;
|