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,61 +1,61 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const RequireIncludeDependency = require("./RequireIncludeDependency");
|
8
|
-
const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin");
|
9
|
-
|
10
|
-
const ParserHelpers = require("../ParserHelpers");
|
11
|
-
|
12
|
-
class RequireIncludePlugin {
|
13
|
-
apply(compiler) {
|
14
|
-
compiler.hooks.compilation.tap(
|
15
|
-
"RequireIncludePlugin",
|
16
|
-
(compilation, { normalModuleFactory }) => {
|
17
|
-
compilation.dependencyFactories.set(
|
18
|
-
RequireIncludeDependency,
|
19
|
-
normalModuleFactory
|
20
|
-
);
|
21
|
-
compilation.dependencyTemplates.set(
|
22
|
-
RequireIncludeDependency,
|
23
|
-
new RequireIncludeDependency.Template()
|
24
|
-
);
|
25
|
-
|
26
|
-
const handler = (parser, parserOptions) => {
|
27
|
-
if (
|
28
|
-
typeof parserOptions.requireInclude !== "undefined" &&
|
29
|
-
!parserOptions.requireInclude
|
30
|
-
)
|
31
|
-
return;
|
32
|
-
|
33
|
-
new RequireIncludeDependencyParserPlugin().apply(parser);
|
34
|
-
parser.hooks.evaluateTypeof
|
35
|
-
.for("require.include")
|
36
|
-
.tap(
|
37
|
-
"RequireIncludePlugin",
|
38
|
-
ParserHelpers.evaluateToString("function")
|
39
|
-
);
|
40
|
-
parser.hooks.typeof
|
41
|
-
.for("require.include")
|
42
|
-
.tap(
|
43
|
-
"RequireIncludePlugin",
|
44
|
-
ParserHelpers.toConstantDependency(
|
45
|
-
parser,
|
46
|
-
JSON.stringify("function")
|
47
|
-
)
|
48
|
-
);
|
49
|
-
};
|
50
|
-
|
51
|
-
normalModuleFactory.hooks.parser
|
52
|
-
.for("javascript/auto")
|
53
|
-
.tap("RequireIncludePlugin", handler);
|
54
|
-
normalModuleFactory.hooks.parser
|
55
|
-
.for("javascript/dynamic")
|
56
|
-
.tap("RequireIncludePlugin", handler);
|
57
|
-
}
|
58
|
-
);
|
59
|
-
}
|
60
|
-
}
|
61
|
-
module.exports = RequireIncludePlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const RequireIncludeDependency = require("./RequireIncludeDependency");
|
8
|
+
const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin");
|
9
|
+
|
10
|
+
const ParserHelpers = require("../ParserHelpers");
|
11
|
+
|
12
|
+
class RequireIncludePlugin {
|
13
|
+
apply(compiler) {
|
14
|
+
compiler.hooks.compilation.tap(
|
15
|
+
"RequireIncludePlugin",
|
16
|
+
(compilation, { normalModuleFactory }) => {
|
17
|
+
compilation.dependencyFactories.set(
|
18
|
+
RequireIncludeDependency,
|
19
|
+
normalModuleFactory
|
20
|
+
);
|
21
|
+
compilation.dependencyTemplates.set(
|
22
|
+
RequireIncludeDependency,
|
23
|
+
new RequireIncludeDependency.Template()
|
24
|
+
);
|
25
|
+
|
26
|
+
const handler = (parser, parserOptions) => {
|
27
|
+
if (
|
28
|
+
typeof parserOptions.requireInclude !== "undefined" &&
|
29
|
+
!parserOptions.requireInclude
|
30
|
+
)
|
31
|
+
return;
|
32
|
+
|
33
|
+
new RequireIncludeDependencyParserPlugin().apply(parser);
|
34
|
+
parser.hooks.evaluateTypeof
|
35
|
+
.for("require.include")
|
36
|
+
.tap(
|
37
|
+
"RequireIncludePlugin",
|
38
|
+
ParserHelpers.evaluateToString("function")
|
39
|
+
);
|
40
|
+
parser.hooks.typeof
|
41
|
+
.for("require.include")
|
42
|
+
.tap(
|
43
|
+
"RequireIncludePlugin",
|
44
|
+
ParserHelpers.toConstantDependency(
|
45
|
+
parser,
|
46
|
+
JSON.stringify("function")
|
47
|
+
)
|
48
|
+
);
|
49
|
+
};
|
50
|
+
|
51
|
+
normalModuleFactory.hooks.parser
|
52
|
+
.for("javascript/auto")
|
53
|
+
.tap("RequireIncludePlugin", handler);
|
54
|
+
normalModuleFactory.hooks.parser
|
55
|
+
.for("javascript/dynamic")
|
56
|
+
.tap("RequireIncludePlugin", handler);
|
57
|
+
}
|
58
|
+
);
|
59
|
+
}
|
60
|
+
}
|
61
|
+
module.exports = RequireIncludePlugin;
|
@@ -1,23 +1,23 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const ContextDependency = require("./ContextDependency");
|
7
|
-
const ContextDependencyTemplateAsId = require("./ContextDependencyTemplateAsId");
|
8
|
-
|
9
|
-
class RequireResolveContextDependency extends ContextDependency {
|
10
|
-
constructor(options, range, valueRange) {
|
11
|
-
super(options);
|
12
|
-
this.range = range;
|
13
|
-
this.valueRange = valueRange;
|
14
|
-
}
|
15
|
-
|
16
|
-
get type() {
|
17
|
-
return "amd require context";
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
RequireResolveContextDependency.Template = ContextDependencyTemplateAsId;
|
22
|
-
|
23
|
-
module.exports = RequireResolveContextDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const ContextDependency = require("./ContextDependency");
|
7
|
+
const ContextDependencyTemplateAsId = require("./ContextDependencyTemplateAsId");
|
8
|
+
|
9
|
+
class RequireResolveContextDependency extends ContextDependency {
|
10
|
+
constructor(options, range, valueRange) {
|
11
|
+
super(options);
|
12
|
+
this.range = range;
|
13
|
+
this.valueRange = valueRange;
|
14
|
+
}
|
15
|
+
|
16
|
+
get type() {
|
17
|
+
return "amd require context";
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
RequireResolveContextDependency.Template = ContextDependencyTemplateAsId;
|
22
|
+
|
23
|
+
module.exports = RequireResolveContextDependency;
|
@@ -1,85 +1,85 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const RequireResolveDependency = require("./RequireResolveDependency");
|
8
|
-
const RequireResolveContextDependency = require("./RequireResolveContextDependency");
|
9
|
-
const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
|
10
|
-
const ContextDependencyHelpers = require("./ContextDependencyHelpers");
|
11
|
-
|
12
|
-
class RequireResolveDependencyParserPlugin {
|
13
|
-
constructor(options) {
|
14
|
-
this.options = options;
|
15
|
-
}
|
16
|
-
|
17
|
-
apply(parser) {
|
18
|
-
const options = this.options;
|
19
|
-
|
20
|
-
const process = (expr, weak) => {
|
21
|
-
if (expr.arguments.length !== 1) return;
|
22
|
-
const param = parser.evaluateExpression(expr.arguments[0]);
|
23
|
-
if (param.isConditional()) {
|
24
|
-
for (const option of param.options) {
|
25
|
-
const result = processItem(expr, option, weak);
|
26
|
-
if (result === undefined) {
|
27
|
-
processContext(expr, option, weak);
|
28
|
-
}
|
29
|
-
}
|
30
|
-
const dep = new RequireResolveHeaderDependency(expr.callee.range);
|
31
|
-
dep.loc = expr.loc;
|
32
|
-
parser.state.current.addDependency(dep);
|
33
|
-
return true;
|
34
|
-
} else {
|
35
|
-
const result = processItem(expr, param, weak);
|
36
|
-
if (result === undefined) {
|
37
|
-
processContext(expr, param, weak);
|
38
|
-
}
|
39
|
-
const dep = new RequireResolveHeaderDependency(expr.callee.range);
|
40
|
-
dep.loc = expr.loc;
|
41
|
-
parser.state.current.addDependency(dep);
|
42
|
-
return true;
|
43
|
-
}
|
44
|
-
};
|
45
|
-
const processItem = (expr, param, weak) => {
|
46
|
-
if (param.isString()) {
|
47
|
-
const dep = new RequireResolveDependency(param.string, param.range);
|
48
|
-
dep.loc = expr.loc;
|
49
|
-
dep.optional = !!parser.scope.inTry;
|
50
|
-
dep.weak = weak;
|
51
|
-
parser.state.current.addDependency(dep);
|
52
|
-
return true;
|
53
|
-
}
|
54
|
-
};
|
55
|
-
const processContext = (expr, param, weak) => {
|
56
|
-
const dep = ContextDependencyHelpers.create(
|
57
|
-
RequireResolveContextDependency,
|
58
|
-
param.range,
|
59
|
-
param,
|
60
|
-
expr,
|
61
|
-
options,
|
62
|
-
{
|
63
|
-
mode: weak ? "weak" : "sync"
|
64
|
-
}
|
65
|
-
);
|
66
|
-
if (!dep) return;
|
67
|
-
dep.loc = expr.loc;
|
68
|
-
dep.optional = !!parser.scope.inTry;
|
69
|
-
parser.state.current.addDependency(dep);
|
70
|
-
return true;
|
71
|
-
};
|
72
|
-
|
73
|
-
parser.hooks.call
|
74
|
-
.for("require.resolve")
|
75
|
-
.tap("RequireResolveDependencyParserPlugin", expr => {
|
76
|
-
return process(expr, false);
|
77
|
-
});
|
78
|
-
parser.hooks.call
|
79
|
-
.for("require.resolveWeak")
|
80
|
-
.tap("RequireResolveDependencyParserPlugin", expr => {
|
81
|
-
return process(expr, true);
|
82
|
-
});
|
83
|
-
}
|
84
|
-
}
|
85
|
-
module.exports = RequireResolveDependencyParserPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const RequireResolveDependency = require("./RequireResolveDependency");
|
8
|
+
const RequireResolveContextDependency = require("./RequireResolveContextDependency");
|
9
|
+
const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
|
10
|
+
const ContextDependencyHelpers = require("./ContextDependencyHelpers");
|
11
|
+
|
12
|
+
class RequireResolveDependencyParserPlugin {
|
13
|
+
constructor(options) {
|
14
|
+
this.options = options;
|
15
|
+
}
|
16
|
+
|
17
|
+
apply(parser) {
|
18
|
+
const options = this.options;
|
19
|
+
|
20
|
+
const process = (expr, weak) => {
|
21
|
+
if (expr.arguments.length !== 1) return;
|
22
|
+
const param = parser.evaluateExpression(expr.arguments[0]);
|
23
|
+
if (param.isConditional()) {
|
24
|
+
for (const option of param.options) {
|
25
|
+
const result = processItem(expr, option, weak);
|
26
|
+
if (result === undefined) {
|
27
|
+
processContext(expr, option, weak);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
const dep = new RequireResolveHeaderDependency(expr.callee.range);
|
31
|
+
dep.loc = expr.loc;
|
32
|
+
parser.state.current.addDependency(dep);
|
33
|
+
return true;
|
34
|
+
} else {
|
35
|
+
const result = processItem(expr, param, weak);
|
36
|
+
if (result === undefined) {
|
37
|
+
processContext(expr, param, weak);
|
38
|
+
}
|
39
|
+
const dep = new RequireResolveHeaderDependency(expr.callee.range);
|
40
|
+
dep.loc = expr.loc;
|
41
|
+
parser.state.current.addDependency(dep);
|
42
|
+
return true;
|
43
|
+
}
|
44
|
+
};
|
45
|
+
const processItem = (expr, param, weak) => {
|
46
|
+
if (param.isString()) {
|
47
|
+
const dep = new RequireResolveDependency(param.string, param.range);
|
48
|
+
dep.loc = expr.loc;
|
49
|
+
dep.optional = !!parser.scope.inTry;
|
50
|
+
dep.weak = weak;
|
51
|
+
parser.state.current.addDependency(dep);
|
52
|
+
return true;
|
53
|
+
}
|
54
|
+
};
|
55
|
+
const processContext = (expr, param, weak) => {
|
56
|
+
const dep = ContextDependencyHelpers.create(
|
57
|
+
RequireResolveContextDependency,
|
58
|
+
param.range,
|
59
|
+
param,
|
60
|
+
expr,
|
61
|
+
options,
|
62
|
+
{
|
63
|
+
mode: weak ? "weak" : "sync"
|
64
|
+
}
|
65
|
+
);
|
66
|
+
if (!dep) return;
|
67
|
+
dep.loc = expr.loc;
|
68
|
+
dep.optional = !!parser.scope.inTry;
|
69
|
+
parser.state.current.addDependency(dep);
|
70
|
+
return true;
|
71
|
+
};
|
72
|
+
|
73
|
+
parser.hooks.call
|
74
|
+
.for("require.resolve")
|
75
|
+
.tap("RequireResolveDependencyParserPlugin", expr => {
|
76
|
+
return process(expr, false);
|
77
|
+
});
|
78
|
+
parser.hooks.call
|
79
|
+
.for("require.resolveWeak")
|
80
|
+
.tap("RequireResolveDependencyParserPlugin", expr => {
|
81
|
+
return process(expr, true);
|
82
|
+
});
|
83
|
+
}
|
84
|
+
}
|
85
|
+
module.exports = RequireResolveDependencyParserPlugin;
|
@@ -1,26 +1,26 @@
|
|
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 RequireResolveHeaderDependency extends NullDependency {
|
9
|
-
constructor(range) {
|
10
|
-
super();
|
11
|
-
if (!Array.isArray(range)) throw new Error("range must be valid");
|
12
|
-
this.range = range;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
|
16
|
-
RequireResolveHeaderDependency.Template = class RequireResolveHeaderDependencyTemplate {
|
17
|
-
apply(dep, source) {
|
18
|
-
source.replace(dep.range[0], dep.range[1] - 1, "/*require.resolve*/");
|
19
|
-
}
|
20
|
-
|
21
|
-
applyAsTemplateArgument(name, dep, source) {
|
22
|
-
source.replace(dep.range[0], dep.range[1] - 1, "/*require.resolve*/");
|
23
|
-
}
|
24
|
-
};
|
25
|
-
|
26
|
-
module.exports = RequireResolveHeaderDependency;
|
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 RequireResolveHeaderDependency extends NullDependency {
|
9
|
+
constructor(range) {
|
10
|
+
super();
|
11
|
+
if (!Array.isArray(range)) throw new Error("range must be valid");
|
12
|
+
this.range = range;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
RequireResolveHeaderDependency.Template = class RequireResolveHeaderDependencyTemplate {
|
17
|
+
apply(dep, source) {
|
18
|
+
source.replace(dep.range[0], dep.range[1] - 1, "/*require.resolve*/");
|
19
|
+
}
|
20
|
+
|
21
|
+
applyAsTemplateArgument(name, dep, source) {
|
22
|
+
source.replace(dep.range[0], dep.range[1] - 1, "/*require.resolve*/");
|
23
|
+
}
|
24
|
+
};
|
25
|
+
|
26
|
+
module.exports = RequireResolveHeaderDependency;
|
@@ -1,18 +1,18 @@
|
|
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 SingleEntryDependency extends ModuleDependency {
|
9
|
-
constructor(request) {
|
10
|
-
super(request);
|
11
|
-
}
|
12
|
-
|
13
|
-
get type() {
|
14
|
-
return "single entry";
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
module.exports = SingleEntryDependency;
|
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 SingleEntryDependency extends ModuleDependency {
|
9
|
+
constructor(request) {
|
10
|
+
super(request);
|
11
|
+
}
|
12
|
+
|
13
|
+
get type() {
|
14
|
+
return "single entry";
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
module.exports = SingleEntryDependency;
|