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,33 +1,33 @@
|
|
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 AMDRequireDependency = require("./AMDRequireDependency");
|
8
|
-
|
9
|
-
module.exports = class AMDRequireDependenciesBlock extends AsyncDependenciesBlock {
|
10
|
-
constructor(expr, arrayRange, functionRange, errorCallbackRange, module, loc) {
|
11
|
-
super(null, module, loc);
|
12
|
-
this.expr = expr;
|
13
|
-
this.outerRange = expr.range;
|
14
|
-
this.arrayRange = arrayRange;
|
15
|
-
this.functionRange = functionRange;
|
16
|
-
this.errorCallbackRange = errorCallbackRange;
|
17
|
-
this.bindThis = true;
|
18
|
-
if(arrayRange && functionRange && errorCallbackRange) {
|
19
|
-
this.range = [arrayRange[0], errorCallbackRange[1]];
|
20
|
-
} else if(arrayRange && functionRange) {
|
21
|
-
this.range = [arrayRange[0], functionRange[1]];
|
22
|
-
} else if(arrayRange) {
|
23
|
-
this.range = arrayRange;
|
24
|
-
} else if(functionRange) {
|
25
|
-
this.range = functionRange;
|
26
|
-
} else {
|
27
|
-
this.range = expr.range;
|
28
|
-
}
|
29
|
-
const dep = new AMDRequireDependency(this);
|
30
|
-
dep.loc = loc;
|
31
|
-
this.addDependency(dep);
|
32
|
-
}
|
33
|
-
};
|
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 AMDRequireDependency = require("./AMDRequireDependency");
|
8
|
+
|
9
|
+
module.exports = class AMDRequireDependenciesBlock extends AsyncDependenciesBlock {
|
10
|
+
constructor(expr, arrayRange, functionRange, errorCallbackRange, module, loc) {
|
11
|
+
super(null, module, loc);
|
12
|
+
this.expr = expr;
|
13
|
+
this.outerRange = expr.range;
|
14
|
+
this.arrayRange = arrayRange;
|
15
|
+
this.functionRange = functionRange;
|
16
|
+
this.errorCallbackRange = errorCallbackRange;
|
17
|
+
this.bindThis = true;
|
18
|
+
if(arrayRange && functionRange && errorCallbackRange) {
|
19
|
+
this.range = [arrayRange[0], errorCallbackRange[1]];
|
20
|
+
} else if(arrayRange && functionRange) {
|
21
|
+
this.range = [arrayRange[0], functionRange[1]];
|
22
|
+
} else if(arrayRange) {
|
23
|
+
this.range = arrayRange;
|
24
|
+
} else if(functionRange) {
|
25
|
+
this.range = functionRange;
|
26
|
+
} else {
|
27
|
+
this.range = expr.range;
|
28
|
+
}
|
29
|
+
const dep = new AMDRequireDependency(this);
|
30
|
+
dep.loc = loc;
|
31
|
+
this.addDependency(dep);
|
32
|
+
}
|
33
|
+
};
|
@@ -1,177 +1,177 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const AMDRequireItemDependency = require("./AMDRequireItemDependency");
|
8
|
-
const AMDRequireArrayDependency = require("./AMDRequireArrayDependency");
|
9
|
-
const AMDRequireContextDependency = require("./AMDRequireContextDependency");
|
10
|
-
const AMDRequireDependenciesBlock = require("./AMDRequireDependenciesBlock");
|
11
|
-
const UnsupportedDependency = require("./UnsupportedDependency");
|
12
|
-
const LocalModuleDependency = require("./LocalModuleDependency");
|
13
|
-
const ContextDependencyHelpers = require("./ContextDependencyHelpers");
|
14
|
-
const LocalModulesHelpers = require("./LocalModulesHelpers");
|
15
|
-
const ConstDependency = require("./ConstDependency");
|
16
|
-
const getFunctionExpression = require("./getFunctionExpression");
|
17
|
-
const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning");
|
18
|
-
|
19
|
-
class AMDRequireDependenciesBlockParserPlugin {
|
20
|
-
constructor(options) {
|
21
|
-
this.options = options;
|
22
|
-
}
|
23
|
-
|
24
|
-
processFunctionArgument(parser, expression) {
|
25
|
-
let bindThis = true;
|
26
|
-
const fnData = getFunctionExpression(expression);
|
27
|
-
if(fnData) {
|
28
|
-
parser.inScope(fnData.fn.params.filter((i) => {
|
29
|
-
return ["require", "module", "exports"].indexOf(i.name) < 0;
|
30
|
-
}), () => {
|
31
|
-
if(fnData.fn.body.type === "BlockStatement")
|
32
|
-
parser.walkStatement(fnData.fn.body);
|
33
|
-
else
|
34
|
-
parser.walkExpression(fnData.fn.body);
|
35
|
-
});
|
36
|
-
parser.walkExpressions(fnData.expressions);
|
37
|
-
if(fnData.needThis === false) {
|
38
|
-
bindThis = false;
|
39
|
-
}
|
40
|
-
} else {
|
41
|
-
parser.walkExpression(expression);
|
42
|
-
}
|
43
|
-
return bindThis;
|
44
|
-
}
|
45
|
-
|
46
|
-
apply(parser) {
|
47
|
-
const options = this.options;
|
48
|
-
parser.plugin("call require", (expr) => {
|
49
|
-
let param;
|
50
|
-
let dep;
|
51
|
-
let result;
|
52
|
-
|
53
|
-
const old = parser.state.current;
|
54
|
-
|
55
|
-
if(expr.arguments.length >= 1) {
|
56
|
-
param = parser.evaluateExpression(expr.arguments[0]);
|
57
|
-
dep = new AMDRequireDependenciesBlock(
|
58
|
-
expr,
|
59
|
-
param.range,
|
60
|
-
(expr.arguments.length > 1) ? expr.arguments[1].range : null,
|
61
|
-
(expr.arguments.length > 2) ? expr.arguments[2].range : null,
|
62
|
-
parser.state.module,
|
63
|
-
expr.loc
|
64
|
-
);
|
65
|
-
parser.state.current = dep;
|
66
|
-
}
|
67
|
-
|
68
|
-
if(expr.arguments.length === 1) {
|
69
|
-
parser.inScope([], () => {
|
70
|
-
result = parser.applyPluginsBailResult("call require:amd:array", expr, param);
|
71
|
-
});
|
72
|
-
parser.state.current = old;
|
73
|
-
if(!result) return;
|
74
|
-
parser.state.current.addBlock(dep);
|
75
|
-
return true;
|
76
|
-
}
|
77
|
-
|
78
|
-
if(expr.arguments.length === 2 || expr.arguments.length === 3) {
|
79
|
-
try {
|
80
|
-
parser.inScope([], () => {
|
81
|
-
result = parser.applyPluginsBailResult("call require:amd:array", expr, param);
|
82
|
-
});
|
83
|
-
if(!result) {
|
84
|
-
dep = new UnsupportedDependency("unsupported", expr.range);
|
85
|
-
old.addDependency(dep);
|
86
|
-
if(parser.state.module)
|
87
|
-
parser.state.module.errors.push(new UnsupportedFeatureWarning(parser.state.module, "Cannot statically analyse 'require(..., ...)' in line " + expr.loc.start.line));
|
88
|
-
dep = null;
|
89
|
-
return true;
|
90
|
-
}
|
91
|
-
dep.functionBindThis = this.processFunctionArgument(parser, expr.arguments[1]);
|
92
|
-
if(expr.arguments.length === 3) {
|
93
|
-
dep.errorCallbackBindThis = this.processFunctionArgument(parser, expr.arguments[2]);
|
94
|
-
}
|
95
|
-
} finally {
|
96
|
-
parser.state.current = old;
|
97
|
-
if(dep)
|
98
|
-
parser.state.current.addBlock(dep);
|
99
|
-
}
|
100
|
-
return true;
|
101
|
-
}
|
102
|
-
});
|
103
|
-
parser.plugin("call require:amd:array", (expr, param) => {
|
104
|
-
if(param.isArray()) {
|
105
|
-
param.items.forEach((param) => {
|
106
|
-
const result = parser.applyPluginsBailResult("call require:amd:item", expr, param);
|
107
|
-
if(result === undefined) {
|
108
|
-
parser.applyPluginsBailResult("call require:amd:context", expr, param);
|
109
|
-
}
|
110
|
-
});
|
111
|
-
return true;
|
112
|
-
} else if(param.isConstArray()) {
|
113
|
-
const deps = [];
|
114
|
-
param.array.forEach((request) => {
|
115
|
-
let dep, localModule;
|
116
|
-
if(request === "require") {
|
117
|
-
dep = "__webpack_require__";
|
118
|
-
} else if(["exports", "module"].indexOf(request) >= 0) {
|
119
|
-
dep = request;
|
120
|
-
} else if(localModule = LocalModulesHelpers.getLocalModule(parser.state, request)) { // eslint-disable-line no-cond-assign
|
121
|
-
dep = new LocalModuleDependency(localModule);
|
122
|
-
dep.loc = expr.loc;
|
123
|
-
parser.state.current.addDependency(dep);
|
124
|
-
} else {
|
125
|
-
dep = new AMDRequireItemDependency(request);
|
126
|
-
dep.loc = expr.loc;
|
127
|
-
dep.optional = !!parser.scope.inTry;
|
128
|
-
parser.state.current.addDependency(dep);
|
129
|
-
}
|
130
|
-
deps.push(dep);
|
131
|
-
});
|
132
|
-
const dep = new AMDRequireArrayDependency(deps, param.range);
|
133
|
-
dep.loc = expr.loc;
|
134
|
-
dep.optional = !!parser.scope.inTry;
|
135
|
-
parser.state.current.addDependency(dep);
|
136
|
-
return true;
|
137
|
-
}
|
138
|
-
});
|
139
|
-
parser.plugin("call require:amd:item", (expr, param) => {
|
140
|
-
if(param.isConditional()) {
|
141
|
-
param.options.forEach((param) => {
|
142
|
-
const result = parser.applyPluginsBailResult("call require:amd:item", expr, param);
|
143
|
-
if(result === undefined) {
|
144
|
-
parser.applyPluginsBailResult("call require:amd:context", expr, param);
|
145
|
-
}
|
146
|
-
});
|
147
|
-
return true;
|
148
|
-
} else if(param.isString()) {
|
149
|
-
let dep, localModule;
|
150
|
-
if(param.string === "require") {
|
151
|
-
dep = new ConstDependency("__webpack_require__", param.string);
|
152
|
-
} else if(param.string === "module") {
|
153
|
-
dep = new ConstDependency(parser.state.module.moduleArgument || "module", param.range);
|
154
|
-
} else if(param.string === "exports") {
|
155
|
-
dep = new ConstDependency(parser.state.module.exportsArgument || "exports", param.range);
|
156
|
-
} else if(localModule = LocalModulesHelpers.getLocalModule(parser.state, param.string)) { // eslint-disable-line no-cond-assign
|
157
|
-
dep = new LocalModuleDependency(localModule, param.range);
|
158
|
-
} else {
|
159
|
-
dep = new AMDRequireItemDependency(param.string, param.range);
|
160
|
-
}
|
161
|
-
dep.loc = expr.loc;
|
162
|
-
dep.optional = !!parser.scope.inTry;
|
163
|
-
parser.state.current.addDependency(dep);
|
164
|
-
return true;
|
165
|
-
}
|
166
|
-
});
|
167
|
-
parser.plugin("call require:amd:context", (expr, param) => {
|
168
|
-
const dep = ContextDependencyHelpers.create(AMDRequireContextDependency, param.range, param, expr, options);
|
169
|
-
if(!dep) return;
|
170
|
-
dep.loc = expr.loc;
|
171
|
-
dep.optional = !!parser.scope.inTry;
|
172
|
-
parser.state.current.addDependency(dep);
|
173
|
-
return true;
|
174
|
-
});
|
175
|
-
}
|
176
|
-
}
|
177
|
-
module.exports = AMDRequireDependenciesBlockParserPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const AMDRequireItemDependency = require("./AMDRequireItemDependency");
|
8
|
+
const AMDRequireArrayDependency = require("./AMDRequireArrayDependency");
|
9
|
+
const AMDRequireContextDependency = require("./AMDRequireContextDependency");
|
10
|
+
const AMDRequireDependenciesBlock = require("./AMDRequireDependenciesBlock");
|
11
|
+
const UnsupportedDependency = require("./UnsupportedDependency");
|
12
|
+
const LocalModuleDependency = require("./LocalModuleDependency");
|
13
|
+
const ContextDependencyHelpers = require("./ContextDependencyHelpers");
|
14
|
+
const LocalModulesHelpers = require("./LocalModulesHelpers");
|
15
|
+
const ConstDependency = require("./ConstDependency");
|
16
|
+
const getFunctionExpression = require("./getFunctionExpression");
|
17
|
+
const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning");
|
18
|
+
|
19
|
+
class AMDRequireDependenciesBlockParserPlugin {
|
20
|
+
constructor(options) {
|
21
|
+
this.options = options;
|
22
|
+
}
|
23
|
+
|
24
|
+
processFunctionArgument(parser, expression) {
|
25
|
+
let bindThis = true;
|
26
|
+
const fnData = getFunctionExpression(expression);
|
27
|
+
if(fnData) {
|
28
|
+
parser.inScope(fnData.fn.params.filter((i) => {
|
29
|
+
return ["require", "module", "exports"].indexOf(i.name) < 0;
|
30
|
+
}), () => {
|
31
|
+
if(fnData.fn.body.type === "BlockStatement")
|
32
|
+
parser.walkStatement(fnData.fn.body);
|
33
|
+
else
|
34
|
+
parser.walkExpression(fnData.fn.body);
|
35
|
+
});
|
36
|
+
parser.walkExpressions(fnData.expressions);
|
37
|
+
if(fnData.needThis === false) {
|
38
|
+
bindThis = false;
|
39
|
+
}
|
40
|
+
} else {
|
41
|
+
parser.walkExpression(expression);
|
42
|
+
}
|
43
|
+
return bindThis;
|
44
|
+
}
|
45
|
+
|
46
|
+
apply(parser) {
|
47
|
+
const options = this.options;
|
48
|
+
parser.plugin("call require", (expr) => {
|
49
|
+
let param;
|
50
|
+
let dep;
|
51
|
+
let result;
|
52
|
+
|
53
|
+
const old = parser.state.current;
|
54
|
+
|
55
|
+
if(expr.arguments.length >= 1) {
|
56
|
+
param = parser.evaluateExpression(expr.arguments[0]);
|
57
|
+
dep = new AMDRequireDependenciesBlock(
|
58
|
+
expr,
|
59
|
+
param.range,
|
60
|
+
(expr.arguments.length > 1) ? expr.arguments[1].range : null,
|
61
|
+
(expr.arguments.length > 2) ? expr.arguments[2].range : null,
|
62
|
+
parser.state.module,
|
63
|
+
expr.loc
|
64
|
+
);
|
65
|
+
parser.state.current = dep;
|
66
|
+
}
|
67
|
+
|
68
|
+
if(expr.arguments.length === 1) {
|
69
|
+
parser.inScope([], () => {
|
70
|
+
result = parser.applyPluginsBailResult("call require:amd:array", expr, param);
|
71
|
+
});
|
72
|
+
parser.state.current = old;
|
73
|
+
if(!result) return;
|
74
|
+
parser.state.current.addBlock(dep);
|
75
|
+
return true;
|
76
|
+
}
|
77
|
+
|
78
|
+
if(expr.arguments.length === 2 || expr.arguments.length === 3) {
|
79
|
+
try {
|
80
|
+
parser.inScope([], () => {
|
81
|
+
result = parser.applyPluginsBailResult("call require:amd:array", expr, param);
|
82
|
+
});
|
83
|
+
if(!result) {
|
84
|
+
dep = new UnsupportedDependency("unsupported", expr.range);
|
85
|
+
old.addDependency(dep);
|
86
|
+
if(parser.state.module)
|
87
|
+
parser.state.module.errors.push(new UnsupportedFeatureWarning(parser.state.module, "Cannot statically analyse 'require(..., ...)' in line " + expr.loc.start.line));
|
88
|
+
dep = null;
|
89
|
+
return true;
|
90
|
+
}
|
91
|
+
dep.functionBindThis = this.processFunctionArgument(parser, expr.arguments[1]);
|
92
|
+
if(expr.arguments.length === 3) {
|
93
|
+
dep.errorCallbackBindThis = this.processFunctionArgument(parser, expr.arguments[2]);
|
94
|
+
}
|
95
|
+
} finally {
|
96
|
+
parser.state.current = old;
|
97
|
+
if(dep)
|
98
|
+
parser.state.current.addBlock(dep);
|
99
|
+
}
|
100
|
+
return true;
|
101
|
+
}
|
102
|
+
});
|
103
|
+
parser.plugin("call require:amd:array", (expr, param) => {
|
104
|
+
if(param.isArray()) {
|
105
|
+
param.items.forEach((param) => {
|
106
|
+
const result = parser.applyPluginsBailResult("call require:amd:item", expr, param);
|
107
|
+
if(result === undefined) {
|
108
|
+
parser.applyPluginsBailResult("call require:amd:context", expr, param);
|
109
|
+
}
|
110
|
+
});
|
111
|
+
return true;
|
112
|
+
} else if(param.isConstArray()) {
|
113
|
+
const deps = [];
|
114
|
+
param.array.forEach((request) => {
|
115
|
+
let dep, localModule;
|
116
|
+
if(request === "require") {
|
117
|
+
dep = "__webpack_require__";
|
118
|
+
} else if(["exports", "module"].indexOf(request) >= 0) {
|
119
|
+
dep = request;
|
120
|
+
} else if(localModule = LocalModulesHelpers.getLocalModule(parser.state, request)) { // eslint-disable-line no-cond-assign
|
121
|
+
dep = new LocalModuleDependency(localModule);
|
122
|
+
dep.loc = expr.loc;
|
123
|
+
parser.state.current.addDependency(dep);
|
124
|
+
} else {
|
125
|
+
dep = new AMDRequireItemDependency(request);
|
126
|
+
dep.loc = expr.loc;
|
127
|
+
dep.optional = !!parser.scope.inTry;
|
128
|
+
parser.state.current.addDependency(dep);
|
129
|
+
}
|
130
|
+
deps.push(dep);
|
131
|
+
});
|
132
|
+
const dep = new AMDRequireArrayDependency(deps, param.range);
|
133
|
+
dep.loc = expr.loc;
|
134
|
+
dep.optional = !!parser.scope.inTry;
|
135
|
+
parser.state.current.addDependency(dep);
|
136
|
+
return true;
|
137
|
+
}
|
138
|
+
});
|
139
|
+
parser.plugin("call require:amd:item", (expr, param) => {
|
140
|
+
if(param.isConditional()) {
|
141
|
+
param.options.forEach((param) => {
|
142
|
+
const result = parser.applyPluginsBailResult("call require:amd:item", expr, param);
|
143
|
+
if(result === undefined) {
|
144
|
+
parser.applyPluginsBailResult("call require:amd:context", expr, param);
|
145
|
+
}
|
146
|
+
});
|
147
|
+
return true;
|
148
|
+
} else if(param.isString()) {
|
149
|
+
let dep, localModule;
|
150
|
+
if(param.string === "require") {
|
151
|
+
dep = new ConstDependency("__webpack_require__", param.string);
|
152
|
+
} else if(param.string === "module") {
|
153
|
+
dep = new ConstDependency(parser.state.module.moduleArgument || "module", param.range);
|
154
|
+
} else if(param.string === "exports") {
|
155
|
+
dep = new ConstDependency(parser.state.module.exportsArgument || "exports", param.range);
|
156
|
+
} else if(localModule = LocalModulesHelpers.getLocalModule(parser.state, param.string)) { // eslint-disable-line no-cond-assign
|
157
|
+
dep = new LocalModuleDependency(localModule, param.range);
|
158
|
+
} else {
|
159
|
+
dep = new AMDRequireItemDependency(param.string, param.range);
|
160
|
+
}
|
161
|
+
dep.loc = expr.loc;
|
162
|
+
dep.optional = !!parser.scope.inTry;
|
163
|
+
parser.state.current.addDependency(dep);
|
164
|
+
return true;
|
165
|
+
}
|
166
|
+
});
|
167
|
+
parser.plugin("call require:amd:context", (expr, param) => {
|
168
|
+
const dep = ContextDependencyHelpers.create(AMDRequireContextDependency, param.range, param, expr, options);
|
169
|
+
if(!dep) return;
|
170
|
+
dep.loc = expr.loc;
|
171
|
+
dep.optional = !!parser.scope.inTry;
|
172
|
+
parser.state.current.addDependency(dep);
|
173
|
+
return true;
|
174
|
+
});
|
175
|
+
}
|
176
|
+
}
|
177
|
+
module.exports = AMDRequireDependenciesBlockParserPlugin;
|
@@ -1,67 +1,67 @@
|
|
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 AMDRequireDependency extends NullDependency {
|
10
|
-
constructor(block) {
|
11
|
-
super();
|
12
|
-
this.block = block;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
|
16
|
-
AMDRequireDependency.Template = class AMDRequireDependencyTemplate {
|
17
|
-
apply(dep, source, outputOptions, requestShortener) {
|
18
|
-
const depBlock = dep.block;
|
19
|
-
const wrapper = DepBlockHelpers.getLoadDepBlockWrapper(depBlock, outputOptions, requestShortener, "require");
|
20
|
-
|
21
|
-
// has array range but no function range
|
22
|
-
if(depBlock.arrayRange && !depBlock.functionRange) {
|
23
|
-
const startBlock = wrapper[0] + "function() {";
|
24
|
-
const endBlock = `;}${wrapper[1]}__webpack_require__.oe${wrapper[2]}`;
|
25
|
-
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0] - 1, startBlock);
|
26
|
-
source.replace(depBlock.arrayRange[1], depBlock.outerRange[1] - 1, endBlock);
|
27
|
-
return;
|
28
|
-
}
|
29
|
-
|
30
|
-
// has function range but no array range
|
31
|
-
if(depBlock.functionRange && !depBlock.arrayRange) {
|
32
|
-
const startBlock = wrapper[0] + "function() {(";
|
33
|
-
const endBlock = `.call(exports, __webpack_require__, exports, module));}${wrapper[1]}__webpack_require__.oe${wrapper[2]}`;
|
34
|
-
source.replace(depBlock.outerRange[0], depBlock.functionRange[0] - 1, startBlock);
|
35
|
-
source.replace(depBlock.functionRange[1], depBlock.outerRange[1] - 1, endBlock);
|
36
|
-
return;
|
37
|
-
}
|
38
|
-
|
39
|
-
// has array range, function range, and errorCallbackRange
|
40
|
-
if(depBlock.arrayRange && depBlock.functionRange && depBlock.errorCallbackRange) {
|
41
|
-
const startBlock = wrapper[0] + "function() { ";
|
42
|
-
const errorRangeBlock = `}${depBlock.functionBindThis ? ".bind(this)" : ""}${wrapper[1]}`;
|
43
|
-
const endBlock = `${depBlock.errorCallbackBindThis ? ".bind(this)" : ""}${wrapper[2]}`;
|
44
|
-
|
45
|
-
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0] - 1, startBlock);
|
46
|
-
source.insert(depBlock.arrayRange[0] + 0.9, "var __WEBPACK_AMD_REQUIRE_ARRAY__ = ");
|
47
|
-
source.replace(depBlock.arrayRange[1], depBlock.functionRange[0] - 1, "; (");
|
48
|
-
source.insert(depBlock.functionRange[1], ".apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));");
|
49
|
-
source.replace(depBlock.functionRange[1], depBlock.errorCallbackRange[0] - 1, errorRangeBlock);
|
50
|
-
source.replace(depBlock.errorCallbackRange[1], depBlock.outerRange[1] - 1, endBlock);
|
51
|
-
return;
|
52
|
-
}
|
53
|
-
|
54
|
-
// has array range, function range, but no errorCallbackRange
|
55
|
-
if(depBlock.arrayRange && depBlock.functionRange) {
|
56
|
-
const startBlock = wrapper[0] + "function() { ";
|
57
|
-
const endBlock = `}${depBlock.functionBindThis ? ".bind(this)" : ""}${wrapper[1]}__webpack_require__.oe${wrapper[2]}`;
|
58
|
-
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0] - 1, startBlock);
|
59
|
-
source.insert(depBlock.arrayRange[0] + 0.9, "var __WEBPACK_AMD_REQUIRE_ARRAY__ = ");
|
60
|
-
source.replace(depBlock.arrayRange[1], depBlock.functionRange[0] - 1, "; (");
|
61
|
-
source.insert(depBlock.functionRange[1], ".apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));");
|
62
|
-
source.replace(depBlock.functionRange[1], depBlock.outerRange[1] - 1, endBlock);
|
63
|
-
}
|
64
|
-
}
|
65
|
-
};
|
66
|
-
|
67
|
-
module.exports = AMDRequireDependency;
|
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 AMDRequireDependency extends NullDependency {
|
10
|
+
constructor(block) {
|
11
|
+
super();
|
12
|
+
this.block = block;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
AMDRequireDependency.Template = class AMDRequireDependencyTemplate {
|
17
|
+
apply(dep, source, outputOptions, requestShortener) {
|
18
|
+
const depBlock = dep.block;
|
19
|
+
const wrapper = DepBlockHelpers.getLoadDepBlockWrapper(depBlock, outputOptions, requestShortener, "require");
|
20
|
+
|
21
|
+
// has array range but no function range
|
22
|
+
if(depBlock.arrayRange && !depBlock.functionRange) {
|
23
|
+
const startBlock = wrapper[0] + "function() {";
|
24
|
+
const endBlock = `;}${wrapper[1]}__webpack_require__.oe${wrapper[2]}`;
|
25
|
+
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0] - 1, startBlock);
|
26
|
+
source.replace(depBlock.arrayRange[1], depBlock.outerRange[1] - 1, endBlock);
|
27
|
+
return;
|
28
|
+
}
|
29
|
+
|
30
|
+
// has function range but no array range
|
31
|
+
if(depBlock.functionRange && !depBlock.arrayRange) {
|
32
|
+
const startBlock = wrapper[0] + "function() {(";
|
33
|
+
const endBlock = `.call(exports, __webpack_require__, exports, module));}${wrapper[1]}__webpack_require__.oe${wrapper[2]}`;
|
34
|
+
source.replace(depBlock.outerRange[0], depBlock.functionRange[0] - 1, startBlock);
|
35
|
+
source.replace(depBlock.functionRange[1], depBlock.outerRange[1] - 1, endBlock);
|
36
|
+
return;
|
37
|
+
}
|
38
|
+
|
39
|
+
// has array range, function range, and errorCallbackRange
|
40
|
+
if(depBlock.arrayRange && depBlock.functionRange && depBlock.errorCallbackRange) {
|
41
|
+
const startBlock = wrapper[0] + "function() { ";
|
42
|
+
const errorRangeBlock = `}${depBlock.functionBindThis ? ".bind(this)" : ""}${wrapper[1]}`;
|
43
|
+
const endBlock = `${depBlock.errorCallbackBindThis ? ".bind(this)" : ""}${wrapper[2]}`;
|
44
|
+
|
45
|
+
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0] - 1, startBlock);
|
46
|
+
source.insert(depBlock.arrayRange[0] + 0.9, "var __WEBPACK_AMD_REQUIRE_ARRAY__ = ");
|
47
|
+
source.replace(depBlock.arrayRange[1], depBlock.functionRange[0] - 1, "; (");
|
48
|
+
source.insert(depBlock.functionRange[1], ".apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));");
|
49
|
+
source.replace(depBlock.functionRange[1], depBlock.errorCallbackRange[0] - 1, errorRangeBlock);
|
50
|
+
source.replace(depBlock.errorCallbackRange[1], depBlock.outerRange[1] - 1, endBlock);
|
51
|
+
return;
|
52
|
+
}
|
53
|
+
|
54
|
+
// has array range, function range, but no errorCallbackRange
|
55
|
+
if(depBlock.arrayRange && depBlock.functionRange) {
|
56
|
+
const startBlock = wrapper[0] + "function() { ";
|
57
|
+
const endBlock = `}${depBlock.functionBindThis ? ".bind(this)" : ""}${wrapper[1]}__webpack_require__.oe${wrapper[2]}`;
|
58
|
+
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0] - 1, startBlock);
|
59
|
+
source.insert(depBlock.arrayRange[0] + 0.9, "var __WEBPACK_AMD_REQUIRE_ARRAY__ = ");
|
60
|
+
source.replace(depBlock.arrayRange[1], depBlock.functionRange[0] - 1, "; (");
|
61
|
+
source.insert(depBlock.functionRange[1], ".apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));");
|
62
|
+
source.replace(depBlock.functionRange[1], depBlock.outerRange[1] - 1, endBlock);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
};
|
66
|
+
|
67
|
+
module.exports = AMDRequireDependency;
|
@@ -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 ModuleDependency = require("./ModuleDependency");
|
7
|
-
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
|
8
|
-
|
9
|
-
class AMDRequireItemDependency extends ModuleDependency {
|
10
|
-
constructor(request, range) {
|
11
|
-
super(request);
|
12
|
-
this.range = range;
|
13
|
-
}
|
14
|
-
|
15
|
-
get type() {
|
16
|
-
return "amd require";
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
AMDRequireItemDependency.Template = ModuleDependencyTemplateAsRequireId;
|
21
|
-
|
22
|
-
module.exports = AMDRequireItemDependency;
|
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 ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
|
8
|
+
|
9
|
+
class AMDRequireItemDependency extends ModuleDependency {
|
10
|
+
constructor(request, range) {
|
11
|
+
super(request);
|
12
|
+
this.range = range;
|
13
|
+
}
|
14
|
+
|
15
|
+
get type() {
|
16
|
+
return "amd require";
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
AMDRequireItemDependency.Template = ModuleDependencyTemplateAsRequireId;
|
21
|
+
|
22
|
+
module.exports = AMDRequireItemDependency;
|
@@ -4,7 +4,6 @@
|
|
4
4
|
*/
|
5
5
|
"use strict";
|
6
6
|
const ContextDependency = require("./ContextDependency");
|
7
|
-
const CriticalDependencyWarning = require("./CriticalDependencyWarning");
|
8
7
|
const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
|
9
8
|
|
10
9
|
class CommonJsRequireContextDependency extends ContextDependency {
|
@@ -18,15 +17,6 @@ class CommonJsRequireContextDependency extends ContextDependency {
|
|
18
17
|
return "cjs require context";
|
19
18
|
}
|
20
19
|
|
21
|
-
getWarnings() {
|
22
|
-
if(!this.critical) {
|
23
|
-
return;
|
24
|
-
}
|
25
|
-
|
26
|
-
return [
|
27
|
-
new CriticalDependencyWarning(this.critical)
|
28
|
-
];
|
29
|
-
}
|
30
20
|
}
|
31
21
|
|
32
22
|
CommonJsRequireContextDependency.Template = ContextDependencyTemplateAsRequireCall;
|