webpack 3.6.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/bin/convert-argv.js +1 -1
- package/bin/webpack.js +6 -0
- 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/AsyncDependencyToInitialChunkWarning.js +21 -0
- package/lib/AutomaticPrefetchPlugin.js +36 -36
- package/lib/BasicEvaluatedExpression.js +203 -203
- package/lib/CaseSensitiveModulesWarning.js +49 -49
- package/lib/Chunk.js +3 -0
- package/lib/ChunkRenderError.js +24 -24
- package/lib/ChunkTemplate.js +36 -36
- package/lib/CompatibilityPlugin.js +57 -57
- package/lib/Compilation.js +158 -51
- package/lib/Compiler.js +523 -523
- package/lib/ConstPlugin.js +60 -60
- package/lib/ContextExclusionPlugin.js +17 -0
- package/lib/ContextModule.js +431 -431
- package/lib/ContextModuleFactory.js +14 -5
- package/lib/ContextReplacementPlugin.js +111 -111
- package/lib/DefinePlugin.js +123 -123
- package/lib/DelegatedModule.js +98 -92
- 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/ExternalModule.js +7 -0
- 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/FunctionModuleTemplatePlugin.js +7 -3
- 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/JsonpMainTemplate.runtime.js +2 -1
- package/lib/JsonpMainTemplatePlugin.js +2 -0
- 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/ModuleParseError.js +1 -1
- 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/Parser.js +65 -34
- 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/Stats.js +27 -8
- 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 +129 -129
- package/lib/WebpackOptionsValidationError.js +196 -196
- package/lib/compareLocations.js +36 -36
- package/lib/dependencies/AMDDefineDependency.js +142 -142
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +5 -1
- package/lib/dependencies/AMDPlugin.js +119 -119
- package/lib/dependencies/AMDRequireArrayDependency.js +2 -0
- package/lib/dependencies/AMDRequireContextDependency.js +0 -9
- 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/CommonJsRequireContextDependency.js +0 -10
- package/lib/dependencies/CommonJsRequireDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +89 -89
- package/lib/dependencies/ConstDependency.js +32 -32
- package/lib/dependencies/ContextDependency.js +20 -0
- 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/HarmonyExportDependencyParserPlugin.js +14 -2
- package/lib/dependencies/HarmonyExportExpressionDependency.js +0 -7
- package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +45 -45
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +0 -13
- package/lib/dependencies/HarmonyModulesHelpers.js +0 -53
- package/lib/dependencies/ImportContextDependency.js +0 -10
- 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/RequireResolveContextDependency.js +0 -10
- 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/CommonsChunkPlugin.js +40 -19
- package/lib/optimize/ConcatenatedModule.js +27 -24
- 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/Queue.js +42 -0
- 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/webpack.js +1 -0
- 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 +69 -0
@@ -1,96 +1,96 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const RequireContextDependency = require("./RequireContextDependency");
|
8
|
-
const ContextElementDependency = require("./ContextElementDependency");
|
9
|
-
|
10
|
-
const RequireContextDependencyParserPlugin = require("./RequireContextDependencyParserPlugin");
|
11
|
-
|
12
|
-
class RequireContextPlugin {
|
13
|
-
constructor(modulesDirectories, extensions, mainFiles) {
|
14
|
-
if(!Array.isArray(modulesDirectories))
|
15
|
-
throw new Error("modulesDirectories must be an array");
|
16
|
-
if(!Array.isArray(extensions))
|
17
|
-
throw new Error("extensions must be an array");
|
18
|
-
this.modulesDirectories = modulesDirectories;
|
19
|
-
this.extensions = extensions;
|
20
|
-
this.mainFiles = mainFiles;
|
21
|
-
}
|
22
|
-
|
23
|
-
apply(compiler) {
|
24
|
-
compiler.plugin("compilation", (compilation, params) => {
|
25
|
-
const contextModuleFactory = params.contextModuleFactory;
|
26
|
-
const normalModuleFactory = params.normalModuleFactory;
|
27
|
-
|
28
|
-
compilation.dependencyFactories.set(RequireContextDependency, contextModuleFactory);
|
29
|
-
compilation.dependencyTemplates.set(RequireContextDependency, new RequireContextDependency.Template());
|
30
|
-
|
31
|
-
compilation.dependencyFactories.set(ContextElementDependency, normalModuleFactory);
|
32
|
-
|
33
|
-
params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
|
34
|
-
|
35
|
-
if(typeof parserOptions.requireContext !== "undefined" && !parserOptions.requireContext)
|
36
|
-
return;
|
37
|
-
|
38
|
-
parser.apply(new RequireContextDependencyParserPlugin());
|
39
|
-
});
|
40
|
-
|
41
|
-
params.contextModuleFactory.plugin("alternatives", (items, callback) => {
|
42
|
-
if(items.length === 0) return callback(null, items);
|
43
|
-
|
44
|
-
callback(null, items.map((obj) => {
|
45
|
-
return this.extensions.filter((ext) => {
|
46
|
-
const l = obj.request.length;
|
47
|
-
return l > ext.length && obj.request.substr(l - ext.length, l) === ext;
|
48
|
-
}).map((ext) => {
|
49
|
-
const l = obj.request.length;
|
50
|
-
return {
|
51
|
-
context: obj.context,
|
52
|
-
request: obj.request.substr(0, l - ext.length)
|
53
|
-
};
|
54
|
-
}).concat(obj);
|
55
|
-
}).reduce((a, b) => a.concat(b), []));
|
56
|
-
});
|
57
|
-
|
58
|
-
params.contextModuleFactory.plugin("alternatives", (items, callback) => {
|
59
|
-
if(items.length === 0) return callback(null, items);
|
60
|
-
|
61
|
-
callback(null, items.map((obj) => {
|
62
|
-
return this.mainFiles.filter((mainFile) => {
|
63
|
-
const l = obj.request.length;
|
64
|
-
return l > mainFile.length + 1 && obj.request.substr(l - mainFile.length - 1, l) === "/" + mainFile;
|
65
|
-
}).map((mainFile) => {
|
66
|
-
const l = obj.request.length;
|
67
|
-
return [{
|
68
|
-
context: obj.context,
|
69
|
-
request: obj.request.substr(0, l - mainFile.length)
|
70
|
-
}, {
|
71
|
-
context: obj.context,
|
72
|
-
request: obj.request.substr(0, l - mainFile.length - 1)
|
73
|
-
}];
|
74
|
-
}).reduce((a, b) => a.concat(b), []).concat(obj);
|
75
|
-
}).reduce((a, b) => a.concat(b), []));
|
76
|
-
});
|
77
|
-
|
78
|
-
params.contextModuleFactory.plugin("alternatives", (items, callback) => {
|
79
|
-
if(items.length === 0) return callback(null, items);
|
80
|
-
|
81
|
-
callback(null, items.map((obj) => {
|
82
|
-
for(let i = 0; i < this.modulesDirectories.length; i++) {
|
83
|
-
const dir = this.modulesDirectories[i];
|
84
|
-
const idx = obj.request.indexOf("./" + dir + "/");
|
85
|
-
if(idx === 0) {
|
86
|
-
obj.request = obj.request.slice(dir.length + 3);
|
87
|
-
break;
|
88
|
-
}
|
89
|
-
}
|
90
|
-
return obj;
|
91
|
-
}));
|
92
|
-
});
|
93
|
-
});
|
94
|
-
}
|
95
|
-
}
|
96
|
-
module.exports = RequireContextPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const RequireContextDependency = require("./RequireContextDependency");
|
8
|
+
const ContextElementDependency = require("./ContextElementDependency");
|
9
|
+
|
10
|
+
const RequireContextDependencyParserPlugin = require("./RequireContextDependencyParserPlugin");
|
11
|
+
|
12
|
+
class RequireContextPlugin {
|
13
|
+
constructor(modulesDirectories, extensions, mainFiles) {
|
14
|
+
if(!Array.isArray(modulesDirectories))
|
15
|
+
throw new Error("modulesDirectories must be an array");
|
16
|
+
if(!Array.isArray(extensions))
|
17
|
+
throw new Error("extensions must be an array");
|
18
|
+
this.modulesDirectories = modulesDirectories;
|
19
|
+
this.extensions = extensions;
|
20
|
+
this.mainFiles = mainFiles;
|
21
|
+
}
|
22
|
+
|
23
|
+
apply(compiler) {
|
24
|
+
compiler.plugin("compilation", (compilation, params) => {
|
25
|
+
const contextModuleFactory = params.contextModuleFactory;
|
26
|
+
const normalModuleFactory = params.normalModuleFactory;
|
27
|
+
|
28
|
+
compilation.dependencyFactories.set(RequireContextDependency, contextModuleFactory);
|
29
|
+
compilation.dependencyTemplates.set(RequireContextDependency, new RequireContextDependency.Template());
|
30
|
+
|
31
|
+
compilation.dependencyFactories.set(ContextElementDependency, normalModuleFactory);
|
32
|
+
|
33
|
+
params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
|
34
|
+
|
35
|
+
if(typeof parserOptions.requireContext !== "undefined" && !parserOptions.requireContext)
|
36
|
+
return;
|
37
|
+
|
38
|
+
parser.apply(new RequireContextDependencyParserPlugin());
|
39
|
+
});
|
40
|
+
|
41
|
+
params.contextModuleFactory.plugin("alternatives", (items, callback) => {
|
42
|
+
if(items.length === 0) return callback(null, items);
|
43
|
+
|
44
|
+
callback(null, items.map((obj) => {
|
45
|
+
return this.extensions.filter((ext) => {
|
46
|
+
const l = obj.request.length;
|
47
|
+
return l > ext.length && obj.request.substr(l - ext.length, l) === ext;
|
48
|
+
}).map((ext) => {
|
49
|
+
const l = obj.request.length;
|
50
|
+
return {
|
51
|
+
context: obj.context,
|
52
|
+
request: obj.request.substr(0, l - ext.length)
|
53
|
+
};
|
54
|
+
}).concat(obj);
|
55
|
+
}).reduce((a, b) => a.concat(b), []));
|
56
|
+
});
|
57
|
+
|
58
|
+
params.contextModuleFactory.plugin("alternatives", (items, callback) => {
|
59
|
+
if(items.length === 0) return callback(null, items);
|
60
|
+
|
61
|
+
callback(null, items.map((obj) => {
|
62
|
+
return this.mainFiles.filter((mainFile) => {
|
63
|
+
const l = obj.request.length;
|
64
|
+
return l > mainFile.length + 1 && obj.request.substr(l - mainFile.length - 1, l) === "/" + mainFile;
|
65
|
+
}).map((mainFile) => {
|
66
|
+
const l = obj.request.length;
|
67
|
+
return [{
|
68
|
+
context: obj.context,
|
69
|
+
request: obj.request.substr(0, l - mainFile.length)
|
70
|
+
}, {
|
71
|
+
context: obj.context,
|
72
|
+
request: obj.request.substr(0, l - mainFile.length - 1)
|
73
|
+
}];
|
74
|
+
}).reduce((a, b) => a.concat(b), []).concat(obj);
|
75
|
+
}).reduce((a, b) => a.concat(b), []));
|
76
|
+
});
|
77
|
+
|
78
|
+
params.contextModuleFactory.plugin("alternatives", (items, callback) => {
|
79
|
+
if(items.length === 0) return callback(null, items);
|
80
|
+
|
81
|
+
callback(null, items.map((obj) => {
|
82
|
+
for(let i = 0; i < this.modulesDirectories.length; i++) {
|
83
|
+
const dir = this.modulesDirectories[i];
|
84
|
+
const idx = obj.request.indexOf("./" + dir + "/");
|
85
|
+
if(idx === 0) {
|
86
|
+
obj.request = obj.request.slice(dir.length + 3);
|
87
|
+
break;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
return obj;
|
91
|
+
}));
|
92
|
+
});
|
93
|
+
});
|
94
|
+
}
|
95
|
+
}
|
96
|
+
module.exports = RequireContextPlugin;
|
@@ -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
|
-
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
|
7
|
-
const RequireEnsureDependency = require("./RequireEnsureDependency");
|
8
|
-
|
9
|
-
module.exports = class RequireEnsureDependenciesBlock extends AsyncDependenciesBlock {
|
10
|
-
constructor(expr, successExpression, errorExpression, chunkName, chunkNameRange, module, loc) {
|
11
|
-
super(chunkName, module, loc);
|
12
|
-
this.expr = expr;
|
13
|
-
const successBodyRange = successExpression && successExpression.body && successExpression.body.range;
|
14
|
-
if(successBodyRange) {
|
15
|
-
this.range = [successBodyRange[0] + 1, successBodyRange[1] - 1];
|
16
|
-
}
|
17
|
-
this.chunkNameRange = chunkNameRange;
|
18
|
-
const dep = new RequireEnsureDependency(this);
|
19
|
-
dep.loc = loc;
|
20
|
-
this.addDependency(dep);
|
21
|
-
}
|
22
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
|
7
|
+
const RequireEnsureDependency = require("./RequireEnsureDependency");
|
8
|
+
|
9
|
+
module.exports = class RequireEnsureDependenciesBlock extends AsyncDependenciesBlock {
|
10
|
+
constructor(expr, successExpression, errorExpression, chunkName, chunkNameRange, module, loc) {
|
11
|
+
super(chunkName, module, loc);
|
12
|
+
this.expr = expr;
|
13
|
+
const successBodyRange = successExpression && successExpression.body && successExpression.body.range;
|
14
|
+
if(successBodyRange) {
|
15
|
+
this.range = [successBodyRange[0] + 1, successBodyRange[1] - 1];
|
16
|
+
}
|
17
|
+
this.chunkNameRange = chunkNameRange;
|
18
|
+
const dep = new RequireEnsureDependency(this);
|
19
|
+
dep.loc = loc;
|
20
|
+
this.addDependency(dep);
|
21
|
+
}
|
22
|
+
};
|
@@ -1,102 +1,102 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const RequireEnsureDependenciesBlock = require("./RequireEnsureDependenciesBlock");
|
8
|
-
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
|
9
|
-
const getFunctionExpression = require("./getFunctionExpression");
|
10
|
-
|
11
|
-
module.exports = class RequireEnsureDependenciesBlockParserPlugin {
|
12
|
-
apply(parser) {
|
13
|
-
parser.plugin("call require.ensure", expr => {
|
14
|
-
let chunkName = null;
|
15
|
-
let chunkNameRange = null;
|
16
|
-
let errorExpressionArg = null;
|
17
|
-
let errorExpression = null;
|
18
|
-
switch(expr.arguments.length) {
|
19
|
-
case 4:
|
20
|
-
{
|
21
|
-
const chunkNameExpr = parser.evaluateExpression(expr.arguments[3]);
|
22
|
-
if(!chunkNameExpr.isString()) return;
|
23
|
-
chunkNameRange = chunkNameExpr.range;
|
24
|
-
chunkName = chunkNameExpr.string;
|
25
|
-
}
|
26
|
-
// falls through
|
27
|
-
case 3:
|
28
|
-
{
|
29
|
-
errorExpressionArg = expr.arguments[2];
|
30
|
-
errorExpression = getFunctionExpression(errorExpressionArg);
|
31
|
-
|
32
|
-
if(!errorExpression && !chunkName) {
|
33
|
-
const chunkNameExpr = parser.evaluateExpression(expr.arguments[2]);
|
34
|
-
if(!chunkNameExpr.isString()) return;
|
35
|
-
chunkNameRange = chunkNameExpr.range;
|
36
|
-
chunkName = chunkNameExpr.string;
|
37
|
-
}
|
38
|
-
}
|
39
|
-
// falls through
|
40
|
-
case 2:
|
41
|
-
{
|
42
|
-
const dependenciesExpr = parser.evaluateExpression(expr.arguments[0]);
|
43
|
-
const dependenciesItems = dependenciesExpr.isArray() ? dependenciesExpr.items : [dependenciesExpr];
|
44
|
-
const successExpressionArg = expr.arguments[1];
|
45
|
-
const successExpression = getFunctionExpression(successExpressionArg);
|
46
|
-
|
47
|
-
if(successExpression) {
|
48
|
-
parser.walkExpressions(successExpression.expressions);
|
49
|
-
}
|
50
|
-
if(errorExpression) {
|
51
|
-
parser.walkExpressions(errorExpression.expressions);
|
52
|
-
}
|
53
|
-
|
54
|
-
const dep = new RequireEnsureDependenciesBlock(expr,
|
55
|
-
successExpression ? successExpression.fn : successExpressionArg,
|
56
|
-
errorExpression ? errorExpression.fn : errorExpressionArg,
|
57
|
-
chunkName, chunkNameRange, parser.state.module, expr.loc);
|
58
|
-
const old = parser.state.current;
|
59
|
-
parser.state.current = dep;
|
60
|
-
try {
|
61
|
-
let failed = false;
|
62
|
-
parser.inScope([], () => {
|
63
|
-
dependenciesItems.forEach(ee => {
|
64
|
-
if(ee.isString()) {
|
65
|
-
const edep = new RequireEnsureItemDependency(ee.string, ee.range);
|
66
|
-
edep.loc = dep.loc;
|
67
|
-
dep.addDependency(edep);
|
68
|
-
} else {
|
69
|
-
failed = true;
|
70
|
-
}
|
71
|
-
});
|
72
|
-
});
|
73
|
-
if(failed) {
|
74
|
-
return;
|
75
|
-
}
|
76
|
-
if(successExpression) {
|
77
|
-
if(successExpression.fn.body.type === "BlockStatement")
|
78
|
-
parser.walkStatement(successExpression.fn.body);
|
79
|
-
else
|
80
|
-
parser.walkExpression(successExpression.fn.body);
|
81
|
-
}
|
82
|
-
old.addBlock(dep);
|
83
|
-
} finally {
|
84
|
-
parser.state.current = old;
|
85
|
-
}
|
86
|
-
if(!successExpression) {
|
87
|
-
parser.walkExpression(successExpressionArg);
|
88
|
-
}
|
89
|
-
if(errorExpression) {
|
90
|
-
if(errorExpression.fn.body.type === "BlockStatement")
|
91
|
-
parser.walkStatement(errorExpression.fn.body);
|
92
|
-
else
|
93
|
-
parser.walkExpression(errorExpression.fn.body);
|
94
|
-
} else if(errorExpressionArg) {
|
95
|
-
parser.walkExpression(errorExpressionArg);
|
96
|
-
}
|
97
|
-
return true;
|
98
|
-
}
|
99
|
-
}
|
100
|
-
});
|
101
|
-
}
|
102
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const RequireEnsureDependenciesBlock = require("./RequireEnsureDependenciesBlock");
|
8
|
+
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
|
9
|
+
const getFunctionExpression = require("./getFunctionExpression");
|
10
|
+
|
11
|
+
module.exports = class RequireEnsureDependenciesBlockParserPlugin {
|
12
|
+
apply(parser) {
|
13
|
+
parser.plugin("call require.ensure", expr => {
|
14
|
+
let chunkName = null;
|
15
|
+
let chunkNameRange = null;
|
16
|
+
let errorExpressionArg = null;
|
17
|
+
let errorExpression = null;
|
18
|
+
switch(expr.arguments.length) {
|
19
|
+
case 4:
|
20
|
+
{
|
21
|
+
const chunkNameExpr = parser.evaluateExpression(expr.arguments[3]);
|
22
|
+
if(!chunkNameExpr.isString()) return;
|
23
|
+
chunkNameRange = chunkNameExpr.range;
|
24
|
+
chunkName = chunkNameExpr.string;
|
25
|
+
}
|
26
|
+
// falls through
|
27
|
+
case 3:
|
28
|
+
{
|
29
|
+
errorExpressionArg = expr.arguments[2];
|
30
|
+
errorExpression = getFunctionExpression(errorExpressionArg);
|
31
|
+
|
32
|
+
if(!errorExpression && !chunkName) {
|
33
|
+
const chunkNameExpr = parser.evaluateExpression(expr.arguments[2]);
|
34
|
+
if(!chunkNameExpr.isString()) return;
|
35
|
+
chunkNameRange = chunkNameExpr.range;
|
36
|
+
chunkName = chunkNameExpr.string;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
// falls through
|
40
|
+
case 2:
|
41
|
+
{
|
42
|
+
const dependenciesExpr = parser.evaluateExpression(expr.arguments[0]);
|
43
|
+
const dependenciesItems = dependenciesExpr.isArray() ? dependenciesExpr.items : [dependenciesExpr];
|
44
|
+
const successExpressionArg = expr.arguments[1];
|
45
|
+
const successExpression = getFunctionExpression(successExpressionArg);
|
46
|
+
|
47
|
+
if(successExpression) {
|
48
|
+
parser.walkExpressions(successExpression.expressions);
|
49
|
+
}
|
50
|
+
if(errorExpression) {
|
51
|
+
parser.walkExpressions(errorExpression.expressions);
|
52
|
+
}
|
53
|
+
|
54
|
+
const dep = new RequireEnsureDependenciesBlock(expr,
|
55
|
+
successExpression ? successExpression.fn : successExpressionArg,
|
56
|
+
errorExpression ? errorExpression.fn : errorExpressionArg,
|
57
|
+
chunkName, chunkNameRange, parser.state.module, expr.loc);
|
58
|
+
const old = parser.state.current;
|
59
|
+
parser.state.current = dep;
|
60
|
+
try {
|
61
|
+
let failed = false;
|
62
|
+
parser.inScope([], () => {
|
63
|
+
dependenciesItems.forEach(ee => {
|
64
|
+
if(ee.isString()) {
|
65
|
+
const edep = new RequireEnsureItemDependency(ee.string, ee.range);
|
66
|
+
edep.loc = dep.loc;
|
67
|
+
dep.addDependency(edep);
|
68
|
+
} else {
|
69
|
+
failed = true;
|
70
|
+
}
|
71
|
+
});
|
72
|
+
});
|
73
|
+
if(failed) {
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
if(successExpression) {
|
77
|
+
if(successExpression.fn.body.type === "BlockStatement")
|
78
|
+
parser.walkStatement(successExpression.fn.body);
|
79
|
+
else
|
80
|
+
parser.walkExpression(successExpression.fn.body);
|
81
|
+
}
|
82
|
+
old.addBlock(dep);
|
83
|
+
} finally {
|
84
|
+
parser.state.current = old;
|
85
|
+
}
|
86
|
+
if(!successExpression) {
|
87
|
+
parser.walkExpression(successExpressionArg);
|
88
|
+
}
|
89
|
+
if(errorExpression) {
|
90
|
+
if(errorExpression.fn.body.type === "BlockStatement")
|
91
|
+
parser.walkStatement(errorExpression.fn.body);
|
92
|
+
else
|
93
|
+
parser.walkExpression(errorExpression.fn.body);
|
94
|
+
} else if(errorExpressionArg) {
|
95
|
+
parser.walkExpression(errorExpressionArg);
|
96
|
+
}
|
97
|
+
return true;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
});
|
101
|
+
}
|
102
|
+
};
|
@@ -1,38 +1,38 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const NullDependency = require("./NullDependency");
|
7
|
-
const DepBlockHelpers = require("./DepBlockHelpers");
|
8
|
-
|
9
|
-
class RequireEnsureDependency extends NullDependency {
|
10
|
-
constructor(block) {
|
11
|
-
super();
|
12
|
-
this.block = block;
|
13
|
-
}
|
14
|
-
|
15
|
-
get type() {
|
16
|
-
return "require.ensure";
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
RequireEnsureDependency.Template = class RequireEnsureDependencyTemplate {
|
21
|
-
apply(dep, source, outputOptions, requestShortener) {
|
22
|
-
const depBlock = dep.block;
|
23
|
-
const wrapper = DepBlockHelpers.getLoadDepBlockWrapper(depBlock, outputOptions, requestShortener, "require.ensure");
|
24
|
-
const errorCallbackExists = depBlock.expr.arguments.length === 4 || (!depBlock.chunkName && depBlock.expr.arguments.length === 3);
|
25
|
-
const startBlock = wrapper[0] + "(";
|
26
|
-
const middleBlock = `).bind(null, __webpack_require__)${wrapper[1]}`;
|
27
|
-
const endBlock = `${middleBlock}__webpack_require__.oe${wrapper[2]}`;
|
28
|
-
source.replace(depBlock.expr.range[0], depBlock.expr.arguments[1].range[0] - 1, startBlock);
|
29
|
-
if(errorCallbackExists) {
|
30
|
-
source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.arguments[2].range[0] - 1, middleBlock);
|
31
|
-
source.replace(depBlock.expr.arguments[2].range[1], depBlock.expr.range[1] - 1, wrapper[2]);
|
32
|
-
} else {
|
33
|
-
source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.range[1] - 1, endBlock);
|
34
|
-
}
|
35
|
-
}
|
36
|
-
};
|
37
|
-
|
38
|
-
module.exports = RequireEnsureDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const NullDependency = require("./NullDependency");
|
7
|
+
const DepBlockHelpers = require("./DepBlockHelpers");
|
8
|
+
|
9
|
+
class RequireEnsureDependency extends NullDependency {
|
10
|
+
constructor(block) {
|
11
|
+
super();
|
12
|
+
this.block = block;
|
13
|
+
}
|
14
|
+
|
15
|
+
get type() {
|
16
|
+
return "require.ensure";
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
RequireEnsureDependency.Template = class RequireEnsureDependencyTemplate {
|
21
|
+
apply(dep, source, outputOptions, requestShortener) {
|
22
|
+
const depBlock = dep.block;
|
23
|
+
const wrapper = DepBlockHelpers.getLoadDepBlockWrapper(depBlock, outputOptions, requestShortener, "require.ensure");
|
24
|
+
const errorCallbackExists = depBlock.expr.arguments.length === 4 || (!depBlock.chunkName && depBlock.expr.arguments.length === 3);
|
25
|
+
const startBlock = wrapper[0] + "(";
|
26
|
+
const middleBlock = `).bind(null, __webpack_require__)${wrapper[1]}`;
|
27
|
+
const endBlock = `${middleBlock}__webpack_require__.oe${wrapper[2]}`;
|
28
|
+
source.replace(depBlock.expr.range[0], depBlock.expr.arguments[1].range[0] - 1, startBlock);
|
29
|
+
if(errorCallbackExists) {
|
30
|
+
source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.arguments[2].range[0] - 1, middleBlock);
|
31
|
+
source.replace(depBlock.expr.arguments[2].range[1], depBlock.expr.range[1] - 1, wrapper[2]);
|
32
|
+
} else {
|
33
|
+
source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.range[1] - 1, endBlock);
|
34
|
+
}
|
35
|
+
}
|
36
|
+
};
|
37
|
+
|
38
|
+
module.exports = RequireEnsureDependency;
|
@@ -1,21 +1,21 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const ModuleDependency = require("./ModuleDependency");
|
7
|
-
const NullDependency = require("./NullDependency");
|
8
|
-
|
9
|
-
class RequireEnsureItemDependency extends ModuleDependency {
|
10
|
-
constructor(request) {
|
11
|
-
super(request);
|
12
|
-
}
|
13
|
-
|
14
|
-
get type() {
|
15
|
-
return "require.ensure item";
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
RequireEnsureItemDependency.Template = NullDependency.Template;
|
20
|
-
|
21
|
-
module.exports = RequireEnsureItemDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const ModuleDependency = require("./ModuleDependency");
|
7
|
+
const NullDependency = require("./NullDependency");
|
8
|
+
|
9
|
+
class RequireEnsureItemDependency extends ModuleDependency {
|
10
|
+
constructor(request) {
|
11
|
+
super(request);
|
12
|
+
}
|
13
|
+
|
14
|
+
get type() {
|
15
|
+
return "require.ensure item";
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
RequireEnsureItemDependency.Template = NullDependency.Template;
|
20
|
+
|
21
|
+
module.exports = RequireEnsureItemDependency;
|
@@ -1,40 +1,40 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
|
8
|
-
const RequireEnsureDependency = require("./RequireEnsureDependency");
|
9
|
-
|
10
|
-
const NullFactory = require("../NullFactory");
|
11
|
-
|
12
|
-
const RequireEnsureDependenciesBlockParserPlugin = require("./RequireEnsureDependenciesBlockParserPlugin");
|
13
|
-
|
14
|
-
const ParserHelpers = require("../ParserHelpers");
|
15
|
-
|
16
|
-
class RequireEnsurePlugin {
|
17
|
-
|
18
|
-
apply(compiler) {
|
19
|
-
compiler.plugin("compilation", (compilation, params) => {
|
20
|
-
const normalModuleFactory = params.normalModuleFactory;
|
21
|
-
|
22
|
-
compilation.dependencyFactories.set(RequireEnsureItemDependency, normalModuleFactory);
|
23
|
-
compilation.dependencyTemplates.set(RequireEnsureItemDependency, new RequireEnsureItemDependency.Template());
|
24
|
-
|
25
|
-
compilation.dependencyFactories.set(RequireEnsureDependency, new NullFactory());
|
26
|
-
compilation.dependencyTemplates.set(RequireEnsureDependency, new RequireEnsureDependency.Template());
|
27
|
-
|
28
|
-
params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
|
29
|
-
|
30
|
-
if(typeof parserOptions.requireEnsure !== "undefined" && !parserOptions.requireEnsure)
|
31
|
-
return;
|
32
|
-
|
33
|
-
parser.apply(new RequireEnsureDependenciesBlockParserPlugin());
|
34
|
-
parser.plugin("evaluate typeof require.ensure", ParserHelpers.evaluateToString("function"));
|
35
|
-
parser.plugin("typeof require.ensure", ParserHelpers.toConstantDependency(JSON.stringify("function")));
|
36
|
-
});
|
37
|
-
});
|
38
|
-
}
|
39
|
-
}
|
40
|
-
module.exports = RequireEnsurePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
|
8
|
+
const RequireEnsureDependency = require("./RequireEnsureDependency");
|
9
|
+
|
10
|
+
const NullFactory = require("../NullFactory");
|
11
|
+
|
12
|
+
const RequireEnsureDependenciesBlockParserPlugin = require("./RequireEnsureDependenciesBlockParserPlugin");
|
13
|
+
|
14
|
+
const ParserHelpers = require("../ParserHelpers");
|
15
|
+
|
16
|
+
class RequireEnsurePlugin {
|
17
|
+
|
18
|
+
apply(compiler) {
|
19
|
+
compiler.plugin("compilation", (compilation, params) => {
|
20
|
+
const normalModuleFactory = params.normalModuleFactory;
|
21
|
+
|
22
|
+
compilation.dependencyFactories.set(RequireEnsureItemDependency, normalModuleFactory);
|
23
|
+
compilation.dependencyTemplates.set(RequireEnsureItemDependency, new RequireEnsureItemDependency.Template());
|
24
|
+
|
25
|
+
compilation.dependencyFactories.set(RequireEnsureDependency, new NullFactory());
|
26
|
+
compilation.dependencyTemplates.set(RequireEnsureDependency, new RequireEnsureDependency.Template());
|
27
|
+
|
28
|
+
params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
|
29
|
+
|
30
|
+
if(typeof parserOptions.requireEnsure !== "undefined" && !parserOptions.requireEnsure)
|
31
|
+
return;
|
32
|
+
|
33
|
+
parser.apply(new RequireEnsureDependenciesBlockParserPlugin());
|
34
|
+
parser.plugin("evaluate typeof require.ensure", ParserHelpers.evaluateToString("function"));
|
35
|
+
parser.plugin("typeof require.ensure", ParserHelpers.toConstantDependency(JSON.stringify("function")));
|
36
|
+
});
|
37
|
+
});
|
38
|
+
}
|
39
|
+
}
|
40
|
+
module.exports = RequireEnsurePlugin;
|