webpack 4.9.1 → 4.10.2
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/README.md +755 -755
- package/SECURITY.md +9 -9
- package/buildin/global.js +20 -20
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/hot/dev-server.js +61 -61
- package/hot/log-apply-result.js +44 -44
- package/hot/log.js +45 -45
- package/hot/only-dev-server.js +105 -105
- package/hot/poll.js +37 -37
- package/hot/signal.js +62 -62
- package/lib/APIPlugin.js +84 -84
- package/lib/AmdMainTemplatePlugin.js +87 -75
- package/lib/AsyncDependenciesBlock.js +66 -66
- package/lib/AsyncDependencyToInitialChunkError.js +31 -21
- package/lib/AutomaticPrefetchPlugin.js +50 -50
- package/lib/BannerPlugin.js +3 -1
- package/lib/BasicEvaluatedExpression.js +211 -208
- package/lib/CachePlugin.js +102 -95
- package/lib/CaseSensitiveModulesWarning.js +71 -53
- package/lib/Chunk.js +750 -722
- package/lib/ChunkGroup.js +13 -5
- package/lib/ChunkRenderError.js +32 -32
- package/lib/CompatibilityPlugin.js +63 -63
- package/lib/Compilation.js +1947 -1905
- package/lib/Compiler.js +508 -496
- package/lib/ConcurrentCompilationError.js +19 -19
- package/lib/ConstPlugin.js +258 -242
- package/lib/ContextExclusionPlugin.js +17 -17
- package/lib/ContextModule.js +749 -710
- package/lib/ContextModuleFactory.js +256 -245
- package/lib/ContextReplacementPlugin.js +133 -126
- package/lib/DefinePlugin.js +206 -197
- package/lib/DelegatedModule.js +101 -101
- package/lib/DelegatedModuleFactoryPlugin.js +89 -89
- package/lib/DelegatedPlugin.js +39 -39
- package/lib/DependenciesBlock.js +89 -87
- package/lib/DependenciesBlockVariable.js +52 -51
- package/lib/Dependency.js +51 -51
- package/lib/DllEntryPlugin.js +51 -51
- package/lib/DllModule.js +54 -54
- package/lib/DllModuleFactory.js +29 -29
- package/lib/DllPlugin.js +44 -42
- package/lib/DllReferencePlugin.js +84 -84
- package/lib/DynamicEntryPlugin.js +73 -71
- package/lib/EntryOptionPlugin.js +33 -33
- package/lib/EnvironmentPlugin.js +65 -65
- package/lib/ErrorHelpers.js +60 -57
- package/lib/EvalDevToolModulePlugin.js +27 -27
- package/lib/EvalDevToolModuleTemplatePlugin.js +61 -61
- package/lib/EvalSourceMapDevToolPlugin.js +41 -40
- package/lib/ExportPropertyMainTemplatePlugin.js +53 -40
- package/lib/ExtendedAPIPlugin.js +84 -84
- package/lib/ExternalModule.js +159 -159
- package/lib/ExternalModuleFactoryPlugin.js +110 -110
- package/lib/ExternalsPlugin.js +23 -23
- package/lib/FlagDependencyExportsPlugin.js +146 -146
- package/lib/FlagDependencyUsagePlugin.js +110 -104
- package/lib/FlagInitialModulesAsUsedPlugin.js +36 -36
- package/lib/FunctionModulePlugin.js +19 -19
- package/lib/FunctionModuleTemplatePlugin.js +100 -98
- package/lib/GraphHelpers.js +64 -64
- package/lib/HarmonyLinkingError.js +18 -18
- package/lib/HashedModuleIdsPlugin.js +53 -53
- package/lib/HotModuleReplacement.runtime.js +7 -3
- package/lib/HotModuleReplacementPlugin.js +413 -406
- package/lib/HotUpdateChunk.js +16 -16
- package/lib/HotUpdateChunkTemplate.js +78 -78
- package/lib/IgnorePlugin.js +71 -71
- package/lib/JavascriptGenerator.js +229 -228
- package/lib/JavascriptModulesPlugin.js +179 -184
- package/lib/JsonGenerator.js +42 -42
- package/lib/JsonModulesPlugin.js +30 -30
- package/lib/JsonParser.js +27 -26
- package/lib/LibManifestPlugin.js +86 -86
- package/lib/LibraryTemplatePlugin.js +153 -119
- package/lib/LoaderOptionsPlugin.js +53 -52
- package/lib/LoaderTargetPlugin.js +24 -24
- package/lib/MainTemplate.js +34 -9
- package/lib/Module.js +381 -377
- package/lib/ModuleBuildError.js +42 -42
- package/lib/ModuleDependencyError.js +35 -25
- package/lib/ModuleDependencyWarning.js +25 -25
- package/lib/ModuleError.js +28 -28
- package/lib/ModuleFilenameHelpers.js +178 -166
- package/lib/ModuleParseError.js +44 -44
- package/lib/ModuleReason.js +40 -40
- package/lib/ModuleTemplate.js +84 -84
- package/lib/ModuleWarning.js +30 -30
- package/lib/MultiCompiler.js +283 -271
- package/lib/MultiEntryPlugin.js +58 -58
- package/lib/MultiModule.js +81 -78
- package/lib/MultiModuleFactory.js +23 -23
- package/lib/MultiStats.js +92 -92
- package/lib/MultiWatching.js +38 -38
- package/lib/NamedChunksPlugin.js +29 -29
- package/lib/NamedModulesPlugin.js +57 -57
- package/lib/NoEmitOnErrorsPlugin.js +20 -20
- package/lib/NoModeWarning.js +23 -23
- package/lib/NodeStuffPlugin.js +179 -178
- package/lib/NormalModule.js +497 -490
- package/lib/NormalModuleFactory.js +501 -483
- package/lib/NormalModuleReplacementPlugin.js +51 -51
- package/lib/OptionsDefaulter.js +84 -80
- package/lib/Parser.js +2164 -2086
- package/lib/ParserHelpers.js +103 -100
- package/lib/PrefetchPlugin.js +37 -37
- package/lib/ProgressPlugin.js +231 -231
- package/lib/ProvidePlugin.js +86 -86
- package/lib/RawModule.js +56 -54
- package/lib/RecordIdsPlugin.js +166 -162
- package/lib/RemovedPluginError.js +13 -13
- package/lib/RequestShortener.js +81 -74
- package/lib/RequireJsStuffPlugin.js +69 -69
- package/lib/ResolverFactory.js +64 -64
- package/lib/RuleSet.js +555 -534
- package/lib/RuntimeTemplate.js +320 -277
- package/lib/SetVarMainTemplatePlugin.js +69 -57
- package/lib/SingleEntryPlugin.js +44 -44
- package/lib/SizeFormatHelpers.js +24 -24
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -49
- package/lib/SourceMapDevToolPlugin.js +301 -300
- package/lib/Stats.js +1408 -1367
- package/lib/Template.js +4 -2
- package/lib/TemplatedPathPlugin.js +173 -170
- package/lib/UmdMainTemplatePlugin.js +304 -264
- package/lib/UseStrictPlugin.js +48 -48
- package/lib/WarnCaseSensitiveModulesPlugin.js +37 -36
- package/lib/WarnNoModeSetPlugin.js +17 -17
- package/lib/WatchIgnorePlugin.js +100 -100
- package/lib/Watching.js +194 -193
- package/lib/WebpackError.js +25 -19
- package/lib/WebpackOptionsApply.js +421 -405
- package/lib/WebpackOptionsDefaulter.js +347 -344
- package/lib/WebpackOptionsValidationError.js +345 -316
- package/lib/compareLocations.js +56 -56
- package/lib/dependencies/AMDDefineDependency.js +137 -137
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +336 -327
- package/lib/dependencies/AMDPlugin.js +250 -250
- package/lib/dependencies/AMDRequireArrayDependency.js +49 -49
- package/lib/dependencies/AMDRequireContextDependency.js +20 -20
- package/lib/dependencies/AMDRequireDependenciesBlock.js +43 -43
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +273 -270
- package/lib/dependencies/AMDRequireDependency.js +135 -135
- package/lib/dependencies/CommonJsPlugin.js +161 -161
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -23
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +130 -130
- package/lib/dependencies/ConstDependency.js +33 -33
- package/lib/dependencies/ContextDependency.js +68 -68
- package/lib/dependencies/ContextDependencyTemplateAsId.js +42 -42
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +38 -38
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/DelegatedExportsDependency.js +33 -33
- package/lib/dependencies/DependencyReference.js +18 -18
- package/lib/dependencies/HarmonyAcceptDependency.js +45 -45
- package/lib/dependencies/HarmonyAcceptImportDependency.js +23 -23
- package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -31
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +92 -90
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +139 -139
- package/lib/dependencies/HarmonyExportExpressionDependency.js +53 -53
- package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -30
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +620 -603
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +54 -54
- package/lib/dependencies/HarmonyImportDependency.js +104 -94
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +217 -214
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -31
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +166 -156
- package/lib/dependencies/HarmonyInitDependency.js +60 -60
- package/lib/dependencies/HarmonyModulesPlugin.js +146 -146
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +26 -26
- package/lib/dependencies/ImportContextDependency.js +23 -23
- package/lib/dependencies/ImportDependenciesBlock.js +18 -18
- package/lib/dependencies/ImportDependency.js +34 -34
- package/lib/dependencies/ImportEagerDependency.js +32 -32
- package/lib/dependencies/ImportParserPlugin.js +233 -232
- package/lib/dependencies/ImportPlugin.js +82 -82
- package/lib/dependencies/ImportWeakDependency.js +34 -34
- package/lib/dependencies/JsonExportsDependency.js +26 -26
- package/lib/dependencies/LoaderPlugin.js +98 -93
- package/lib/dependencies/LocalModuleDependency.js +28 -28
- package/lib/dependencies/LocalModulesHelpers.js +52 -45
- package/lib/dependencies/ModuleDependency.js +20 -20
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -17
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -17
- package/lib/dependencies/MultiEntryDependency.js +20 -20
- package/lib/dependencies/NullDependency.js +20 -20
- package/lib/dependencies/RequireContextDependency.js +22 -22
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -56
- package/lib/dependencies/RequireContextPlugin.js +143 -141
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -33
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -112
- package/lib/dependencies/RequireEnsureDependency.js +58 -58
- package/lib/dependencies/RequireEnsurePlugin.js +74 -74
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependency.js +39 -39
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -23
- package/lib/dependencies/RequireIncludePlugin.js +61 -61
- package/lib/dependencies/RequireResolveContextDependency.js +23 -23
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +85 -85
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SingleEntryDependency.js +18 -18
- package/lib/dependencies/SystemPlugin.js +125 -125
- package/lib/dependencies/UnsupportedDependency.js +27 -27
- package/lib/dependencies/WebAssemblyImportDependency.js +48 -44
- package/lib/dependencies/WebpackMissingModule.js +20 -20
- package/lib/dependencies/getFunctionExpression.js +52 -52
- package/lib/formatLocation.js +61 -53
- package/lib/node/NodeChunkTemplatePlugin.js +31 -31
- package/lib/node/NodeEnvironmentPlugin.js +28 -28
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +36 -36
- package/lib/node/NodeMainTemplate.runtime.js +27 -27
- package/lib/node/NodeMainTemplateAsync.runtime.js +44 -44
- package/lib/node/NodeMainTemplatePlugin.js +323 -320
- package/lib/node/NodeSourcePlugin.js +144 -140
- package/lib/node/NodeTargetPlugin.js +18 -18
- package/lib/node/NodeTemplatePlugin.js +31 -31
- package/lib/node/NodeWatchFileSystem.js +99 -82
- package/lib/node/ReadFileCompileWasmTemplatePlugin.js +52 -52
- package/lib/optimize/AggressiveMergingPlugin.js +87 -87
- package/lib/optimize/AggressiveSplittingPlugin.js +287 -281
- package/lib/optimize/ChunkModuleIdRangePlugin.js +68 -68
- package/lib/optimize/ConcatenatedModule.js +1420 -1413
- package/lib/optimize/EnsureChunkConditionsPlugin.js +70 -70
- package/lib/optimize/FlagIncludedChunksPlugin.js +99 -99
- package/lib/optimize/LimitChunkCountPlugin.js +66 -66
- package/lib/optimize/MergeDuplicateChunksPlugin.js +78 -75
- package/lib/optimize/MinChunkSizePlugin.js +77 -77
- package/lib/optimize/ModuleConcatenationPlugin.js +470 -457
- package/lib/optimize/OccurrenceOrderPlugin.js +133 -126
- package/lib/optimize/RemoveParentModulesPlugin.js +127 -117
- package/lib/optimize/RuntimeChunkPlugin.js +41 -41
- package/lib/optimize/SideEffectsFlagPlugin.js +158 -156
- package/lib/optimize/SplitChunksPlugin.js +709 -696
- package/lib/performance/AssetsOverSizeLimitWarning.js +30 -30
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +31 -31
- package/lib/performance/NoAsyncChunksWarning.js +21 -21
- package/lib/performance/SizeLimitsPlugin.js +105 -105
- package/lib/util/Semaphore.js +41 -41
- package/lib/util/SortableSet.js +5 -2
- package/lib/util/StackedSetMap.js +12 -5
- package/lib/util/TrackingSet.js +35 -35
- package/lib/util/cachedMerge.js +35 -35
- package/lib/util/createHash.js +77 -77
- package/lib/util/identifier.js +76 -76
- package/lib/validateSchema.js +67 -67
- package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +18 -18
- package/lib/wasm/WasmMainTemplatePlugin.js +310 -304
- package/lib/wasm/WebAssemblyGenerator.js +143 -19
- package/lib/wasm/WebAssemblyJavascriptGenerator.js +90 -107
- package/lib/wasm/WebAssemblyModulesPlugin.js +80 -80
- package/lib/wasm/WebAssemblyParser.js +28 -5
- package/lib/wasm/WebAssemblyUtils.js +48 -0
- package/lib/web/FetchCompileWasmTemplatePlugin.js +25 -25
- package/lib/web/JsonpChunkTemplatePlugin.js +47 -47
- package/lib/web/JsonpExportMainTemplatePlugin.js +47 -47
- package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -39
- package/lib/web/JsonpMainTemplate.runtime.js +65 -64
- package/lib/web/JsonpMainTemplatePlugin.js +576 -574
- package/lib/web/JsonpTemplatePlugin.js +23 -23
- package/lib/webpack.js +183 -182
- package/lib/webpack.web.js +31 -31
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -35
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -40
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +65 -64
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +179 -179
- package/lib/webworker/WebWorkerTemplatePlugin.js +25 -25
- package/package.json +9 -8
- package/schemas/WebpackOptions.json +1988 -1988
- package/schemas/ajv.absolutePath.js +55 -55
- package/schemas/plugins/DllPlugin.json +32 -32
- package/schemas/plugins/DllReferencePlugin.json +99 -99
- package/schemas/plugins/HashedModuleIdsPlugin.json +24 -24
- package/schemas/plugins/LoaderOptionsPlugin.json +26 -26
- package/schemas/plugins/SourceMapDevToolPlugin.json +187 -187
- package/schemas/plugins/WatchIgnorePlugin.json +16 -16
- package/schemas/plugins/debug/ProfilingPlugin.json +12 -12
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +22 -22
- package/schemas/plugins/optimize/LimitChunkCountPlugin.json +15 -15
- package/schemas/plugins/optimize/MinChunkSizePlugin.json +13 -13
@@ -1,130 +1,130 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const CommonJsRequireDependency = require("./CommonJsRequireDependency");
|
8
|
-
const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
|
9
|
-
const RequireHeaderDependency = require("./RequireHeaderDependency");
|
10
|
-
const LocalModuleDependency = require("./LocalModuleDependency");
|
11
|
-
const ContextDependencyHelpers = require("./ContextDependencyHelpers");
|
12
|
-
const LocalModulesHelpers = require("./LocalModulesHelpers");
|
13
|
-
const ParserHelpers = require("../ParserHelpers");
|
14
|
-
|
15
|
-
class CommonJsRequireDependencyParserPlugin {
|
16
|
-
constructor(options) {
|
17
|
-
this.options = options;
|
18
|
-
}
|
19
|
-
|
20
|
-
apply(parser) {
|
21
|
-
const options = this.options;
|
22
|
-
|
23
|
-
const processItem = (expr, param) => {
|
24
|
-
if (param.isString()) {
|
25
|
-
const dep = new CommonJsRequireDependency(param.string, param.range);
|
26
|
-
dep.loc = expr.loc;
|
27
|
-
dep.optional = !!parser.scope.inTry;
|
28
|
-
parser.state.current.addDependency(dep);
|
29
|
-
return true;
|
30
|
-
}
|
31
|
-
};
|
32
|
-
const processContext = (expr, param) => {
|
33
|
-
const dep = ContextDependencyHelpers.create(
|
34
|
-
CommonJsRequireContextDependency,
|
35
|
-
expr.range,
|
36
|
-
param,
|
37
|
-
expr,
|
38
|
-
options
|
39
|
-
);
|
40
|
-
if (!dep) return;
|
41
|
-
dep.loc = expr.loc;
|
42
|
-
dep.optional = !!parser.scope.inTry;
|
43
|
-
parser.state.current.addDependency(dep);
|
44
|
-
return true;
|
45
|
-
};
|
46
|
-
|
47
|
-
parser.hooks.expression
|
48
|
-
.for("require.cache")
|
49
|
-
.tap(
|
50
|
-
"CommonJsRequireDependencyParserPlugin",
|
51
|
-
ParserHelpers.toConstantDependencyWithWebpackRequire(
|
52
|
-
parser,
|
53
|
-
"__webpack_require__.c"
|
54
|
-
)
|
55
|
-
);
|
56
|
-
parser.hooks.expression
|
57
|
-
.for("require")
|
58
|
-
.tap("CommonJsRequireDependencyParserPlugin", expr => {
|
59
|
-
const dep = new CommonJsRequireContextDependency(
|
60
|
-
{
|
61
|
-
request: options.unknownContextRequest,
|
62
|
-
recursive: options.unknownContextRecursive,
|
63
|
-
regExp: options.unknownContextRegExp,
|
64
|
-
mode: "sync"
|
65
|
-
},
|
66
|
-
expr.range
|
67
|
-
);
|
68
|
-
dep.critical =
|
69
|
-
options.unknownContextCritical &&
|
70
|
-
"require function is used in a way in which dependencies cannot be statically extracted";
|
71
|
-
dep.loc = expr.loc;
|
72
|
-
dep.optional = !!parser.scope.inTry;
|
73
|
-
parser.state.current.addDependency(dep);
|
74
|
-
return true;
|
75
|
-
});
|
76
|
-
|
77
|
-
const createHandler = callNew => expr => {
|
78
|
-
if (expr.arguments.length !== 1) return;
|
79
|
-
let localModule;
|
80
|
-
const param = parser.evaluateExpression(expr.arguments[0]);
|
81
|
-
if (param.isConditional()) {
|
82
|
-
let isExpression = false;
|
83
|
-
const prevLength = parser.state.current.dependencies.length;
|
84
|
-
const dep = new RequireHeaderDependency(expr.callee.range);
|
85
|
-
dep.loc = expr.loc;
|
86
|
-
parser.state.current.addDependency(dep);
|
87
|
-
for (const p of param.options) {
|
88
|
-
const result = processItem(expr, p);
|
89
|
-
if (result === undefined) {
|
90
|
-
isExpression = true;
|
91
|
-
}
|
92
|
-
}
|
93
|
-
if (isExpression) {
|
94
|
-
parser.state.current.dependencies.length = prevLength;
|
95
|
-
} else {
|
96
|
-
return true;
|
97
|
-
}
|
98
|
-
}
|
99
|
-
if (
|
100
|
-
param.isString() &&
|
101
|
-
(localModule = LocalModulesHelpers.getLocalModule(
|
102
|
-
parser.state,
|
103
|
-
param.string
|
104
|
-
))
|
105
|
-
) {
|
106
|
-
const dep = new LocalModuleDependency(localModule, expr.range, callNew);
|
107
|
-
dep.loc = expr.loc;
|
108
|
-
parser.state.current.addDependency(dep);
|
109
|
-
return true;
|
110
|
-
} else {
|
111
|
-
const result = processItem(expr, param);
|
112
|
-
if (result === undefined) {
|
113
|
-
processContext(expr, param);
|
114
|
-
} else {
|
115
|
-
const dep = new RequireHeaderDependency(expr.callee.range);
|
116
|
-
dep.loc = expr.loc;
|
117
|
-
parser.state.current.addDependency(dep);
|
118
|
-
}
|
119
|
-
return true;
|
120
|
-
}
|
121
|
-
};
|
122
|
-
parser.hooks.call
|
123
|
-
.for("require")
|
124
|
-
.tap("CommonJsRequireDependencyParserPlugin", createHandler(false));
|
125
|
-
parser.hooks.new
|
126
|
-
.for("require")
|
127
|
-
.tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
|
128
|
-
}
|
129
|
-
}
|
130
|
-
module.exports = CommonJsRequireDependencyParserPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const CommonJsRequireDependency = require("./CommonJsRequireDependency");
|
8
|
+
const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
|
9
|
+
const RequireHeaderDependency = require("./RequireHeaderDependency");
|
10
|
+
const LocalModuleDependency = require("./LocalModuleDependency");
|
11
|
+
const ContextDependencyHelpers = require("./ContextDependencyHelpers");
|
12
|
+
const LocalModulesHelpers = require("./LocalModulesHelpers");
|
13
|
+
const ParserHelpers = require("../ParserHelpers");
|
14
|
+
|
15
|
+
class CommonJsRequireDependencyParserPlugin {
|
16
|
+
constructor(options) {
|
17
|
+
this.options = options;
|
18
|
+
}
|
19
|
+
|
20
|
+
apply(parser) {
|
21
|
+
const options = this.options;
|
22
|
+
|
23
|
+
const processItem = (expr, param) => {
|
24
|
+
if (param.isString()) {
|
25
|
+
const dep = new CommonJsRequireDependency(param.string, param.range);
|
26
|
+
dep.loc = expr.loc;
|
27
|
+
dep.optional = !!parser.scope.inTry;
|
28
|
+
parser.state.current.addDependency(dep);
|
29
|
+
return true;
|
30
|
+
}
|
31
|
+
};
|
32
|
+
const processContext = (expr, param) => {
|
33
|
+
const dep = ContextDependencyHelpers.create(
|
34
|
+
CommonJsRequireContextDependency,
|
35
|
+
expr.range,
|
36
|
+
param,
|
37
|
+
expr,
|
38
|
+
options
|
39
|
+
);
|
40
|
+
if (!dep) return;
|
41
|
+
dep.loc = expr.loc;
|
42
|
+
dep.optional = !!parser.scope.inTry;
|
43
|
+
parser.state.current.addDependency(dep);
|
44
|
+
return true;
|
45
|
+
};
|
46
|
+
|
47
|
+
parser.hooks.expression
|
48
|
+
.for("require.cache")
|
49
|
+
.tap(
|
50
|
+
"CommonJsRequireDependencyParserPlugin",
|
51
|
+
ParserHelpers.toConstantDependencyWithWebpackRequire(
|
52
|
+
parser,
|
53
|
+
"__webpack_require__.c"
|
54
|
+
)
|
55
|
+
);
|
56
|
+
parser.hooks.expression
|
57
|
+
.for("require")
|
58
|
+
.tap("CommonJsRequireDependencyParserPlugin", expr => {
|
59
|
+
const dep = new CommonJsRequireContextDependency(
|
60
|
+
{
|
61
|
+
request: options.unknownContextRequest,
|
62
|
+
recursive: options.unknownContextRecursive,
|
63
|
+
regExp: options.unknownContextRegExp,
|
64
|
+
mode: "sync"
|
65
|
+
},
|
66
|
+
expr.range
|
67
|
+
);
|
68
|
+
dep.critical =
|
69
|
+
options.unknownContextCritical &&
|
70
|
+
"require function is used in a way in which dependencies cannot be statically extracted";
|
71
|
+
dep.loc = expr.loc;
|
72
|
+
dep.optional = !!parser.scope.inTry;
|
73
|
+
parser.state.current.addDependency(dep);
|
74
|
+
return true;
|
75
|
+
});
|
76
|
+
|
77
|
+
const createHandler = callNew => expr => {
|
78
|
+
if (expr.arguments.length !== 1) return;
|
79
|
+
let localModule;
|
80
|
+
const param = parser.evaluateExpression(expr.arguments[0]);
|
81
|
+
if (param.isConditional()) {
|
82
|
+
let isExpression = false;
|
83
|
+
const prevLength = parser.state.current.dependencies.length;
|
84
|
+
const dep = new RequireHeaderDependency(expr.callee.range);
|
85
|
+
dep.loc = expr.loc;
|
86
|
+
parser.state.current.addDependency(dep);
|
87
|
+
for (const p of param.options) {
|
88
|
+
const result = processItem(expr, p);
|
89
|
+
if (result === undefined) {
|
90
|
+
isExpression = true;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
if (isExpression) {
|
94
|
+
parser.state.current.dependencies.length = prevLength;
|
95
|
+
} else {
|
96
|
+
return true;
|
97
|
+
}
|
98
|
+
}
|
99
|
+
if (
|
100
|
+
param.isString() &&
|
101
|
+
(localModule = LocalModulesHelpers.getLocalModule(
|
102
|
+
parser.state,
|
103
|
+
param.string
|
104
|
+
))
|
105
|
+
) {
|
106
|
+
const dep = new LocalModuleDependency(localModule, expr.range, callNew);
|
107
|
+
dep.loc = expr.loc;
|
108
|
+
parser.state.current.addDependency(dep);
|
109
|
+
return true;
|
110
|
+
} else {
|
111
|
+
const result = processItem(expr, param);
|
112
|
+
if (result === undefined) {
|
113
|
+
processContext(expr, param);
|
114
|
+
} else {
|
115
|
+
const dep = new RequireHeaderDependency(expr.callee.range);
|
116
|
+
dep.loc = expr.loc;
|
117
|
+
parser.state.current.addDependency(dep);
|
118
|
+
}
|
119
|
+
return true;
|
120
|
+
}
|
121
|
+
};
|
122
|
+
parser.hooks.call
|
123
|
+
.for("require")
|
124
|
+
.tap("CommonJsRequireDependencyParserPlugin", createHandler(false));
|
125
|
+
parser.hooks.new
|
126
|
+
.for("require")
|
127
|
+
.tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
|
128
|
+
}
|
129
|
+
}
|
130
|
+
module.exports = CommonJsRequireDependencyParserPlugin;
|
@@ -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 NullDependency = require("./NullDependency");
|
7
|
-
|
8
|
-
class ConstDependency extends NullDependency {
|
9
|
-
constructor(expression, range, requireWebpackRequire) {
|
10
|
-
super();
|
11
|
-
this.expression = expression;
|
12
|
-
this.range = range;
|
13
|
-
this.requireWebpackRequire = requireWebpackRequire;
|
14
|
-
}
|
15
|
-
|
16
|
-
updateHash(hash) {
|
17
|
-
hash.update(this.range + "");
|
18
|
-
hash.update(this.expression + "");
|
19
|
-
}
|
20
|
-
}
|
21
|
-
|
22
|
-
ConstDependency.Template = class ConstDependencyTemplate {
|
23
|
-
apply(dep, source) {
|
24
|
-
if (typeof dep.range === "number") {
|
25
|
-
source.insert(dep.range, dep.expression);
|
26
|
-
return;
|
27
|
-
}
|
28
|
-
|
29
|
-
source.replace(dep.range[0], dep.range[1] - 1, dep.expression);
|
30
|
-
}
|
31
|
-
};
|
32
|
-
|
33
|
-
module.exports = ConstDependency;
|
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
|
+
|
8
|
+
class ConstDependency extends NullDependency {
|
9
|
+
constructor(expression, range, requireWebpackRequire) {
|
10
|
+
super();
|
11
|
+
this.expression = expression;
|
12
|
+
this.range = range;
|
13
|
+
this.requireWebpackRequire = requireWebpackRequire;
|
14
|
+
}
|
15
|
+
|
16
|
+
updateHash(hash) {
|
17
|
+
hash.update(this.range + "");
|
18
|
+
hash.update(this.expression + "");
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
ConstDependency.Template = class ConstDependencyTemplate {
|
23
|
+
apply(dep, source) {
|
24
|
+
if (typeof dep.range === "number") {
|
25
|
+
source.insert(dep.range, dep.expression);
|
26
|
+
return;
|
27
|
+
}
|
28
|
+
|
29
|
+
source.replace(dep.range[0], dep.range[1] - 1, dep.expression);
|
30
|
+
}
|
31
|
+
};
|
32
|
+
|
33
|
+
module.exports = ConstDependency;
|
@@ -1,68 +1,68 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const Dependency = require("../Dependency");
|
7
|
-
const CriticalDependencyWarning = require("./CriticalDependencyWarning");
|
8
|
-
|
9
|
-
const regExpToString = r => (r ? r + "" : "");
|
10
|
-
|
11
|
-
class ContextDependency extends Dependency {
|
12
|
-
// options: { request, recursive, regExp, include, exclude, mode, chunkName, groupOptions }
|
13
|
-
constructor(options) {
|
14
|
-
super();
|
15
|
-
this.options = options;
|
16
|
-
this.userRequest = this.options.request;
|
17
|
-
/** @type {false | string} */
|
18
|
-
this.critical = false;
|
19
|
-
this.hadGlobalOrStickyRegExp = false;
|
20
|
-
if (this.options.regExp.global || this.options.regExp.sticky) {
|
21
|
-
this.options.regExp = null;
|
22
|
-
this.hadGlobalOrStickyRegExp = true;
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
getResourceIdentifier() {
|
27
|
-
return (
|
28
|
-
`context${this.options.request} ${this.options.recursive} ` +
|
29
|
-
`${regExpToString(this.options.regExp)} ${regExpToString(
|
30
|
-
this.options.include
|
31
|
-
)} ${regExpToString(this.options.exclude)} ` +
|
32
|
-
`${this.options.mode} ${this.options.chunkName} ` +
|
33
|
-
`${JSON.stringify(this.options.groupOptions)}`
|
34
|
-
);
|
35
|
-
}
|
36
|
-
|
37
|
-
getWarnings() {
|
38
|
-
let warnings = super.getWarnings() || [];
|
39
|
-
if (this.critical) {
|
40
|
-
warnings.push(new CriticalDependencyWarning(this.critical));
|
41
|
-
}
|
42
|
-
if (this.hadGlobalOrStickyRegExp) {
|
43
|
-
warnings.push(
|
44
|
-
new CriticalDependencyWarning(
|
45
|
-
"Contexts can't use RegExps with the 'g' or 'y' flags."
|
46
|
-
)
|
47
|
-
);
|
48
|
-
}
|
49
|
-
return warnings;
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
// TODO remove in webpack 5
|
54
|
-
Object.defineProperty(ContextDependency.prototype, "async", {
|
55
|
-
configurable: false,
|
56
|
-
get() {
|
57
|
-
throw new Error(
|
58
|
-
"ContextDependency.async was removed. Use ContextDependency.options.mode instead."
|
59
|
-
);
|
60
|
-
},
|
61
|
-
set() {
|
62
|
-
throw new Error(
|
63
|
-
"ContextDependency.async was removed. Pass options.mode to constructor instead"
|
64
|
-
);
|
65
|
-
}
|
66
|
-
});
|
67
|
-
|
68
|
-
module.exports = ContextDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const Dependency = require("../Dependency");
|
7
|
+
const CriticalDependencyWarning = require("./CriticalDependencyWarning");
|
8
|
+
|
9
|
+
const regExpToString = r => (r ? r + "" : "");
|
10
|
+
|
11
|
+
class ContextDependency extends Dependency {
|
12
|
+
// options: { request, recursive, regExp, include, exclude, mode, chunkName, groupOptions }
|
13
|
+
constructor(options) {
|
14
|
+
super();
|
15
|
+
this.options = options;
|
16
|
+
this.userRequest = this.options.request;
|
17
|
+
/** @type {false | string} */
|
18
|
+
this.critical = false;
|
19
|
+
this.hadGlobalOrStickyRegExp = false;
|
20
|
+
if (this.options.regExp.global || this.options.regExp.sticky) {
|
21
|
+
this.options.regExp = null;
|
22
|
+
this.hadGlobalOrStickyRegExp = true;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
getResourceIdentifier() {
|
27
|
+
return (
|
28
|
+
`context${this.options.request} ${this.options.recursive} ` +
|
29
|
+
`${regExpToString(this.options.regExp)} ${regExpToString(
|
30
|
+
this.options.include
|
31
|
+
)} ${regExpToString(this.options.exclude)} ` +
|
32
|
+
`${this.options.mode} ${this.options.chunkName} ` +
|
33
|
+
`${JSON.stringify(this.options.groupOptions)}`
|
34
|
+
);
|
35
|
+
}
|
36
|
+
|
37
|
+
getWarnings() {
|
38
|
+
let warnings = super.getWarnings() || [];
|
39
|
+
if (this.critical) {
|
40
|
+
warnings.push(new CriticalDependencyWarning(this.critical));
|
41
|
+
}
|
42
|
+
if (this.hadGlobalOrStickyRegExp) {
|
43
|
+
warnings.push(
|
44
|
+
new CriticalDependencyWarning(
|
45
|
+
"Contexts can't use RegExps with the 'g' or 'y' flags."
|
46
|
+
)
|
47
|
+
);
|
48
|
+
}
|
49
|
+
return warnings;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
// TODO remove in webpack 5
|
54
|
+
Object.defineProperty(ContextDependency.prototype, "async", {
|
55
|
+
configurable: false,
|
56
|
+
get() {
|
57
|
+
throw new Error(
|
58
|
+
"ContextDependency.async was removed. Use ContextDependency.options.mode instead."
|
59
|
+
);
|
60
|
+
},
|
61
|
+
set() {
|
62
|
+
throw new Error(
|
63
|
+
"ContextDependency.async was removed. Pass options.mode to constructor instead"
|
64
|
+
);
|
65
|
+
}
|
66
|
+
});
|
67
|
+
|
68
|
+
module.exports = ContextDependency;
|
@@ -1,42 +1,42 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
class ContextDependencyTemplateAsId {
|
8
|
-
apply(dep, source, runtime) {
|
9
|
-
const moduleExports = runtime.moduleExports({
|
10
|
-
module: dep.module,
|
11
|
-
request: dep.request
|
12
|
-
});
|
13
|
-
|
14
|
-
if (dep.module) {
|
15
|
-
if (dep.valueRange) {
|
16
|
-
if (Array.isArray(dep.replaces)) {
|
17
|
-
for (let i = 0; i < dep.replaces.length; i++) {
|
18
|
-
const rep = dep.replaces[i];
|
19
|
-
source.replace(rep.range[0], rep.range[1] - 1, rep.value);
|
20
|
-
}
|
21
|
-
}
|
22
|
-
source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
|
23
|
-
source.replace(
|
24
|
-
dep.range[0],
|
25
|
-
dep.valueRange[0] - 1,
|
26
|
-
`${moduleExports}.resolve(${
|
27
|
-
typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : ""
|
28
|
-
}`
|
29
|
-
);
|
30
|
-
} else {
|
31
|
-
source.replace(
|
32
|
-
dep.range[0],
|
33
|
-
dep.range[1] - 1,
|
34
|
-
`${moduleExports}.resolve`
|
35
|
-
);
|
36
|
-
}
|
37
|
-
} else {
|
38
|
-
source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
|
39
|
-
}
|
40
|
-
}
|
41
|
-
}
|
42
|
-
module.exports = ContextDependencyTemplateAsId;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
class ContextDependencyTemplateAsId {
|
8
|
+
apply(dep, source, runtime) {
|
9
|
+
const moduleExports = runtime.moduleExports({
|
10
|
+
module: dep.module,
|
11
|
+
request: dep.request
|
12
|
+
});
|
13
|
+
|
14
|
+
if (dep.module) {
|
15
|
+
if (dep.valueRange) {
|
16
|
+
if (Array.isArray(dep.replaces)) {
|
17
|
+
for (let i = 0; i < dep.replaces.length; i++) {
|
18
|
+
const rep = dep.replaces[i];
|
19
|
+
source.replace(rep.range[0], rep.range[1] - 1, rep.value);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
|
23
|
+
source.replace(
|
24
|
+
dep.range[0],
|
25
|
+
dep.valueRange[0] - 1,
|
26
|
+
`${moduleExports}.resolve(${
|
27
|
+
typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : ""
|
28
|
+
}`
|
29
|
+
);
|
30
|
+
} else {
|
31
|
+
source.replace(
|
32
|
+
dep.range[0],
|
33
|
+
dep.range[1] - 1,
|
34
|
+
`${moduleExports}.resolve`
|
35
|
+
);
|
36
|
+
}
|
37
|
+
} else {
|
38
|
+
source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
module.exports = ContextDependencyTemplateAsId;
|
@@ -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
|
-
|
7
|
-
class ContextDependencyTemplateAsRequireCall {
|
8
|
-
apply(dep, source, runtime) {
|
9
|
-
const moduleExports = runtime.moduleExports({
|
10
|
-
module: dep.module,
|
11
|
-
request: dep.request
|
12
|
-
});
|
13
|
-
|
14
|
-
if (dep.module) {
|
15
|
-
if (dep.valueRange) {
|
16
|
-
if (Array.isArray(dep.replaces)) {
|
17
|
-
for (let i = 0; i < dep.replaces.length; i++) {
|
18
|
-
const rep = dep.replaces[i];
|
19
|
-
source.replace(rep.range[0], rep.range[1] - 1, rep.value);
|
20
|
-
}
|
21
|
-
}
|
22
|
-
source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
|
23
|
-
source.replace(
|
24
|
-
dep.range[0],
|
25
|
-
dep.valueRange[0] - 1,
|
26
|
-
`${moduleExports}(${
|
27
|
-
typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : ""
|
28
|
-
}`
|
29
|
-
);
|
30
|
-
} else {
|
31
|
-
source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
|
32
|
-
}
|
33
|
-
} else {
|
34
|
-
source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
|
35
|
-
}
|
36
|
-
}
|
37
|
-
}
|
38
|
-
module.exports = ContextDependencyTemplateAsRequireCall;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
class ContextDependencyTemplateAsRequireCall {
|
8
|
+
apply(dep, source, runtime) {
|
9
|
+
const moduleExports = runtime.moduleExports({
|
10
|
+
module: dep.module,
|
11
|
+
request: dep.request
|
12
|
+
});
|
13
|
+
|
14
|
+
if (dep.module) {
|
15
|
+
if (dep.valueRange) {
|
16
|
+
if (Array.isArray(dep.replaces)) {
|
17
|
+
for (let i = 0; i < dep.replaces.length; i++) {
|
18
|
+
const rep = dep.replaces[i];
|
19
|
+
source.replace(rep.range[0], rep.range[1] - 1, rep.value);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
|
23
|
+
source.replace(
|
24
|
+
dep.range[0],
|
25
|
+
dep.valueRange[0] - 1,
|
26
|
+
`${moduleExports}(${
|
27
|
+
typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : ""
|
28
|
+
}`
|
29
|
+
);
|
30
|
+
} else {
|
31
|
+
source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
|
32
|
+
}
|
33
|
+
} else {
|
34
|
+
source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
module.exports = ContextDependencyTemplateAsRequireCall;
|
@@ -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
|
-
|
8
|
-
class ContextElementDependency extends ModuleDependency {
|
9
|
-
constructor(request, userRequest) {
|
10
|
-
super(request);
|
11
|
-
if (userRequest) {
|
12
|
-
this.userRequest = userRequest;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
|
16
|
-
get type() {
|
17
|
-
return "context element";
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
module.exports = ContextElementDependency;
|
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
|
+
|
8
|
+
class ContextElementDependency extends ModuleDependency {
|
9
|
+
constructor(request, userRequest) {
|
10
|
+
super(request);
|
11
|
+
if (userRequest) {
|
12
|
+
this.userRequest = userRequest;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
get type() {
|
17
|
+
return "context element";
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
module.exports = ContextElementDependency;
|