webpack 4.15.0 → 4.16.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/LICENSE +20 -20
- package/README.md +761 -758
- package/SECURITY.md +9 -9
- package/buildin/amd-define.js +3 -3
- package/buildin/amd-options.js +2 -2
- package/buildin/global.js +20 -20
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/buildin/system.js +7 -7
- package/hot/dev-server.js +61 -61
- package/hot/emitter.js +2 -2
- 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 +40 -37
- package/hot/signal.js +62 -62
- package/lib/APIPlugin.js +84 -84
- package/lib/AmdMainTemplatePlugin.js +87 -87
- package/lib/AsyncDependencyToInitialChunkError.js +31 -31
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +117 -117
- package/lib/BasicEvaluatedExpression.js +211 -211
- package/lib/CachePlugin.js +102 -102
- package/lib/CaseSensitiveModulesWarning.js +67 -67
- package/lib/Chunk.js +833 -811
- package/lib/ChunkGroup.js +4 -4
- package/lib/ChunkRenderError.js +32 -32
- package/lib/CommentCompilationWarning.js +2 -2
- package/lib/CompatibilityPlugin.js +70 -70
- package/lib/Compilation.js +46 -15
- package/lib/ConcurrentCompilationError.js +19 -19
- package/lib/ConstPlugin.js +258 -258
- package/lib/ContextExclusionPlugin.js +28 -17
- package/lib/ContextModule.js +844 -739
- package/lib/ContextModuleFactory.js +262 -256
- package/lib/ContextReplacementPlugin.js +133 -133
- package/lib/DefinePlugin.js +49 -0
- package/lib/DelegatedModule.js +5 -0
- package/lib/DelegatedModuleFactoryPlugin.js +95 -89
- package/lib/DelegatedPlugin.js +39 -39
- package/lib/DependenciesBlock.js +1 -1
- package/lib/Dependency.js +10 -4
- package/lib/DllModule.js +60 -54
- package/lib/DllModuleFactory.js +29 -29
- package/lib/DllPlugin.js +44 -44
- package/lib/DllReferencePlugin.js +132 -84
- package/lib/EntryModuleNotFoundError.js +21 -21
- package/lib/Entrypoint.js +54 -54
- package/lib/EnvironmentPlugin.js +72 -65
- package/lib/ErrorHelpers.js +60 -60
- package/lib/EvalDevToolModulePlugin.js +27 -27
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +115 -115
- package/lib/EvalSourceMapDevToolPlugin.js +41 -41
- package/lib/ExportPropertyMainTemplatePlugin.js +53 -53
- package/lib/ExternalModule.js +165 -159
- package/lib/ExternalsPlugin.js +23 -23
- package/lib/FlagDependencyExportsPlugin.js +146 -146
- package/lib/FlagInitialModulesAsUsedPlugin.js +36 -36
- package/lib/FunctionModuleTemplatePlugin.js +100 -100
- package/lib/Generator.js +60 -52
- package/lib/HarmonyLinkingError.js +17 -17
- package/lib/HashedModuleIdsPlugin.js +53 -53
- package/lib/HotModuleReplacementPlugin.js +411 -413
- package/lib/IgnorePlugin.js +90 -90
- package/lib/JavascriptGenerator.js +229 -229
- package/lib/JavascriptModulesPlugin.js +179 -179
- package/lib/JsonGenerator.js +55 -55
- package/lib/JsonModulesPlugin.js +30 -30
- package/lib/JsonParser.js +27 -27
- package/lib/LibManifestPlugin.js +86 -86
- package/lib/LibraryTemplatePlugin.js +153 -153
- package/lib/LoaderOptionsPlugin.js +53 -53
- package/lib/LoaderTargetPlugin.js +24 -24
- package/lib/MemoryOutputFileSystem.js +5 -5
- package/lib/Module.js +431 -391
- package/lib/ModuleBuildError.js +52 -52
- package/lib/ModuleDependencyError.js +35 -35
- package/lib/ModuleDependencyWarning.js +25 -25
- package/lib/ModuleError.js +36 -36
- package/lib/ModuleFilenameHelpers.js +178 -178
- package/lib/ModuleNotFoundError.js +23 -23
- package/lib/ModuleParseError.js +57 -57
- package/lib/ModuleTemplate.js +93 -93
- package/lib/ModuleWarning.js +36 -36
- package/lib/MultiCompiler.js +283 -283
- package/lib/MultiModule.js +87 -81
- 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 +197 -179
- package/lib/NormalModule.js +542 -536
- package/lib/NormalModuleFactory.js +526 -526
- package/lib/NormalModuleReplacementPlugin.js +51 -51
- package/lib/NullFactory.js +12 -12
- package/lib/OptionsApply.js +10 -10
- package/lib/OptionsDefaulter.js +84 -84
- package/lib/Parser.js +2202 -2193
- package/lib/ParserHelpers.js +103 -103
- package/lib/PrefetchPlugin.js +37 -37
- package/lib/ProgressPlugin.js +246 -246
- package/lib/ProvidePlugin.js +86 -86
- package/lib/RawModule.js +56 -56
- package/lib/RecordIdsPlugin.js +230 -230
- package/lib/RemovedPluginError.js +11 -11
- package/lib/RequestShortener.js +83 -83
- package/lib/RequireJsStuffPlugin.js +69 -69
- package/lib/ResolverFactory.js +64 -64
- package/lib/RuntimeTemplate.js +12 -0
- package/lib/SetVarMainTemplatePlugin.js +69 -69
- package/lib/SingleEntryPlugin.js +6 -1
- package/lib/SizeFormatHelpers.js +24 -24
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -49
- package/lib/SourceMapDevToolPlugin.js +301 -301
- package/lib/Stats.js +28 -5
- package/lib/TemplatedPathPlugin.js +173 -173
- package/lib/UnsupportedFeatureWarning.js +22 -22
- package/lib/UseStrictPlugin.js +54 -54
- package/lib/WarnCaseSensitiveModulesPlugin.js +37 -37
- package/lib/WarnNoModeSetPlugin.js +17 -17
- package/lib/WatchIgnorePlugin.js +100 -100
- package/lib/Watching.js +194 -194
- package/lib/WebpackOptionsApply.js +92 -10
- package/lib/WebpackOptionsDefaulter.js +368 -354
- package/lib/debug/ProfilingPlugin.js +430 -430
- package/lib/dependencies/AMDPlugin.js +250 -250
- package/lib/dependencies/AMDRequireArrayDependency.js +49 -49
- package/lib/dependencies/AMDRequireContextDependency.js +20 -20
- package/lib/dependencies/AMDRequireDependency.js +135 -135
- package/lib/dependencies/AMDRequireItemDependency.js +22 -22
- package/lib/dependencies/CommonJsPlugin.js +161 -161
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -23
- package/lib/dependencies/CommonJsRequireDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +6 -0
- package/lib/dependencies/ConstDependency.js +33 -33
- package/lib/dependencies/ContextDependency.js +68 -68
- package/lib/dependencies/ContextDependencyHelpers.js +142 -142
- package/lib/dependencies/ContextDependencyTemplateAsId.js +42 -42
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +38 -38
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/CriticalDependencyWarning.js +20 -20
- package/lib/dependencies/DelegatedSourceDependency.js +18 -18
- package/lib/dependencies/DllEntryDependency.js +20 -20
- package/lib/dependencies/HarmonyAcceptDependency.js +45 -45
- package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -31
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +92 -92
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +139 -139
- package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -30
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +2 -1
- package/lib/dependencies/HarmonyImportDependency.js +109 -109
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +222 -222
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -31
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +167 -167
- 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 +263 -263
- package/lib/dependencies/ImportPlugin.js +82 -82
- package/lib/dependencies/ImportWeakDependency.js +34 -34
- package/lib/dependencies/LoaderPlugin.js +18 -1
- package/lib/dependencies/LocalModule.js +23 -23
- package/lib/dependencies/LocalModulesHelpers.js +52 -52
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -17
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -17
- package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
- package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
- package/lib/dependencies/NullDependency.js +20 -20
- package/lib/dependencies/PrefetchDependency.js +18 -18
- package/lib/dependencies/RequireContextDependency.js +22 -22
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -56
- package/lib/dependencies/RequireContextPlugin.js +143 -143
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -33
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -116
- package/lib/dependencies/RequireEnsureDependency.js +58 -58
- package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
- package/lib/dependencies/RequireEnsurePlugin.js +74 -74
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -23
- package/lib/dependencies/RequireIncludePlugin.js +61 -61
- package/lib/dependencies/RequireResolveContextDependency.js +23 -23
- package/lib/dependencies/RequireResolveDependency.js +22 -22
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +85 -85
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SystemPlugin.js +125 -125
- package/lib/dependencies/UnsupportedDependency.js +27 -27
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +29 -29
- package/lib/dependencies/WebAssemblyImportDependency.js +48 -48
- package/lib/dependencies/WebpackMissingModule.js +20 -20
- package/lib/formatLocation.js +75 -61
- 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/NodeMainTemplatePlugin.js +323 -323
- package/lib/node/NodeOutputFileSystem.js +22 -22
- package/lib/node/NodeSourcePlugin.js +144 -144
- package/lib/node/NodeTargetPlugin.js +18 -18
- package/lib/node/NodeTemplatePlugin.js +31 -31
- package/lib/node/NodeWatchFileSystem.js +99 -99
- package/lib/node/ReadFileCompileWasmTemplatePlugin.js +61 -61
- package/lib/optimize/AggressiveMergingPlugin.js +87 -87
- package/lib/optimize/AggressiveSplittingPlugin.js +287 -287
- package/lib/optimize/ConcatenatedModule.js +5 -0
- 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 -78
- package/lib/optimize/MinChunkSizePlugin.js +77 -77
- package/lib/optimize/NaturalChunkOrderPlugin.js +41 -0
- package/lib/optimize/OccurrenceChunkOrderPlugin.js +61 -0
- package/lib/optimize/OccurrenceModuleOrderPlugin.js +103 -0
- package/lib/optimize/OccurrenceOrderPlugin.js +135 -133
- package/lib/optimize/RemoveEmptyChunksPlugin.js +42 -42
- package/lib/optimize/RemoveParentModulesPlugin.js +127 -127
- package/lib/optimize/RuntimeChunkPlugin.js +41 -41
- package/lib/optimize/SideEffectsFlagPlugin.js +168 -168
- package/lib/optimize/SplitChunksPlugin.js +866 -850
- package/lib/performance/AssetsOverSizeLimitWarning.js +30 -30
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +30 -30
- package/lib/performance/NoAsyncChunksWarning.js +21 -21
- package/lib/performance/SizeLimitsPlugin.js +105 -105
- package/lib/util/SortableSet.js +1 -0
- package/lib/util/StackedSetMap.js +144 -135
- package/lib/util/TrackingSet.js +35 -35
- package/lib/util/cachedMerge.js +35 -35
- package/lib/util/deterministicGrouping.js +251 -251
- package/lib/util/identifier.js +103 -103
- package/lib/util/objectToMap.js +16 -16
- package/lib/validateSchema.js +67 -67
- package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +17 -17
- package/lib/wasm/WasmFinalizeExportsPlugin.js +1 -1
- package/lib/wasm/WebAssemblyGenerator.js +16 -2
- package/lib/wasm/WebAssemblyJavascriptGenerator.js +147 -133
- package/lib/wasm/WebAssemblyParser.js +174 -174
- package/lib/wasm/WebAssemblyUtils.js +59 -59
- package/lib/web/FetchCompileWasmTemplatePlugin.js +37 -37
- package/lib/web/JsonpExportMainTemplatePlugin.js +47 -47
- package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -39
- package/lib/web/JsonpMainTemplate.runtime.js +65 -65
- package/lib/web/JsonpMainTemplatePlugin.js +1 -1
- package/lib/web/JsonpTemplatePlugin.js +23 -23
- package/lib/web/WebEnvironmentPlugin.js +18 -18
- package/lib/webpack.js +5 -0
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -35
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -40
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +65 -65
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +196 -196
- package/lib/webworker/WebWorkerTemplatePlugin.js +25 -25
- package/package.json +22 -13
- package/schemas/WebpackOptions.json +2062 -2036
- package/schemas/ajv.absolutePath.js +55 -55
- package/schemas/plugins/BannerPlugin.json +96 -96
- 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
- package/schemas/plugins/optimize/OccurrenceOrderChunkIdsPlugin.json +10 -0
- package/schemas/plugins/optimize/OccurrenceOrderModuleIdsPlugin.json +10 -0
@@ -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 ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
|
8
|
-
|
9
|
-
class CommonJsRequireContextDependency 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 "cjs require context";
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
CommonJsRequireContextDependency.Template = ContextDependencyTemplateAsRequireCall;
|
22
|
-
|
23
|
-
module.exports = CommonJsRequireContextDependency;
|
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 ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
|
8
|
+
|
9
|
+
class CommonJsRequireContextDependency 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 "cjs require context";
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
CommonJsRequireContextDependency.Template = ContextDependencyTemplateAsRequireCall;
|
22
|
+
|
23
|
+
module.exports = CommonJsRequireContextDependency;
|
@@ -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 ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
|
8
|
-
|
9
|
-
class CommonJsRequireDependency extends ModuleDependency {
|
10
|
-
constructor(request, range) {
|
11
|
-
super(request);
|
12
|
-
this.range = range;
|
13
|
-
}
|
14
|
-
|
15
|
-
get type() {
|
16
|
-
return "cjs require";
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
CommonJsRequireDependency.Template = ModuleDependencyTemplateAsId;
|
21
|
-
|
22
|
-
module.exports = CommonJsRequireDependency;
|
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 ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
|
8
|
+
|
9
|
+
class CommonJsRequireDependency extends ModuleDependency {
|
10
|
+
constructor(request, range) {
|
11
|
+
super(request);
|
12
|
+
this.range = range;
|
13
|
+
}
|
14
|
+
|
15
|
+
get type() {
|
16
|
+
return "cjs require";
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
CommonJsRequireDependency.Template = ModuleDependencyTemplateAsId;
|
21
|
+
|
22
|
+
module.exports = CommonJsRequireDependency;
|
@@ -125,6 +125,12 @@ class CommonJsRequireDependencyParserPlugin {
|
|
125
125
|
parser.hooks.new
|
126
126
|
.for("require")
|
127
127
|
.tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
|
128
|
+
parser.hooks.call
|
129
|
+
.for("module.require")
|
130
|
+
.tap("CommonJsRequireDependencyParserPlugin", createHandler(false));
|
131
|
+
parser.hooks.new
|
132
|
+
.for("module.require")
|
133
|
+
.tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
|
128
134
|
}
|
129
135
|
}
|
130
136
|
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,142 +1,142 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const ContextDependencyHelpers = exports;
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Escapes regular expression metacharacters
|
11
|
-
* @param {string} str String to quote
|
12
|
-
* @returns {string} Escaped string
|
13
|
-
*/
|
14
|
-
const quotemeta = str => {
|
15
|
-
return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
|
16
|
-
};
|
17
|
-
|
18
|
-
ContextDependencyHelpers.create = (
|
19
|
-
Dep,
|
20
|
-
range,
|
21
|
-
param,
|
22
|
-
expr,
|
23
|
-
options,
|
24
|
-
contextOptions
|
25
|
-
) => {
|
26
|
-
let dep;
|
27
|
-
let prefix;
|
28
|
-
let postfix;
|
29
|
-
let prefixRange;
|
30
|
-
let valueRange;
|
31
|
-
let idx;
|
32
|
-
let context;
|
33
|
-
let regExp;
|
34
|
-
if (param.isTemplateString()) {
|
35
|
-
prefix = param.quasis[0].string;
|
36
|
-
postfix =
|
37
|
-
param.quasis.length > 1
|
38
|
-
? param.quasis[param.quasis.length - 1].string
|
39
|
-
: "";
|
40
|
-
prefixRange = [param.quasis[0].range[0], param.quasis[0].range[1]];
|
41
|
-
valueRange = param.range;
|
42
|
-
idx = prefix.lastIndexOf("/");
|
43
|
-
context = ".";
|
44
|
-
if (idx >= 0) {
|
45
|
-
context = prefix.substr(0, idx);
|
46
|
-
prefix = `.${prefix.substr(idx)}`;
|
47
|
-
}
|
48
|
-
// If there are more than two quasis, maybe the generated RegExp can be more precise?
|
49
|
-
regExp = new RegExp(
|
50
|
-
`^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
|
51
|
-
postfix
|
52
|
-
)}$`
|
53
|
-
);
|
54
|
-
dep = new Dep(
|
55
|
-
Object.assign(
|
56
|
-
{
|
57
|
-
request: context,
|
58
|
-
recursive: options.wrappedContextRecursive,
|
59
|
-
regExp,
|
60
|
-
mode: "sync"
|
61
|
-
},
|
62
|
-
contextOptions
|
63
|
-
),
|
64
|
-
range,
|
65
|
-
valueRange
|
66
|
-
);
|
67
|
-
dep.loc = expr.loc;
|
68
|
-
dep.replaces = [
|
69
|
-
{
|
70
|
-
range: prefixRange,
|
71
|
-
value: prefix
|
72
|
-
}
|
73
|
-
];
|
74
|
-
dep.critical =
|
75
|
-
options.wrappedContextCritical &&
|
76
|
-
"a part of the request of a dependency is an expression";
|
77
|
-
return dep;
|
78
|
-
} else if (
|
79
|
-
param.isWrapped() &&
|
80
|
-
((param.prefix && param.prefix.isString()) ||
|
81
|
-
(param.postfix && param.postfix.isString()))
|
82
|
-
) {
|
83
|
-
prefix = param.prefix && param.prefix.isString() ? param.prefix.string : "";
|
84
|
-
postfix =
|
85
|
-
param.postfix && param.postfix.isString() ? param.postfix.string : "";
|
86
|
-
prefixRange =
|
87
|
-
param.prefix && param.prefix.isString() ? param.prefix.range : null;
|
88
|
-
valueRange = [
|
89
|
-
prefixRange ? prefixRange[1] : param.range[0],
|
90
|
-
param.range[1]
|
91
|
-
];
|
92
|
-
idx = prefix.lastIndexOf("/");
|
93
|
-
context = ".";
|
94
|
-
if (idx >= 0) {
|
95
|
-
context = prefix.substr(0, idx);
|
96
|
-
prefix = `.${prefix.substr(idx)}`;
|
97
|
-
}
|
98
|
-
regExp = new RegExp(
|
99
|
-
`^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
|
100
|
-
postfix
|
101
|
-
)}$`
|
102
|
-
);
|
103
|
-
dep = new Dep(
|
104
|
-
Object.assign(
|
105
|
-
{
|
106
|
-
request: context,
|
107
|
-
recursive: options.wrappedContextRecursive,
|
108
|
-
regExp,
|
109
|
-
mode: "sync"
|
110
|
-
},
|
111
|
-
contextOptions
|
112
|
-
),
|
113
|
-
range,
|
114
|
-
valueRange
|
115
|
-
);
|
116
|
-
dep.loc = expr.loc;
|
117
|
-
dep.prepend = param.prefix && param.prefix.isString() ? prefix : null;
|
118
|
-
dep.critical =
|
119
|
-
options.wrappedContextCritical &&
|
120
|
-
"a part of the request of a dependency is an expression";
|
121
|
-
return dep;
|
122
|
-
} else {
|
123
|
-
dep = new Dep(
|
124
|
-
Object.assign(
|
125
|
-
{
|
126
|
-
request: options.exprContextRequest,
|
127
|
-
recursive: options.exprContextRecursive,
|
128
|
-
regExp: options.exprContextRegExp,
|
129
|
-
mode: "sync"
|
130
|
-
},
|
131
|
-
contextOptions
|
132
|
-
),
|
133
|
-
range,
|
134
|
-
param.range
|
135
|
-
);
|
136
|
-
dep.loc = expr.loc;
|
137
|
-
dep.critical =
|
138
|
-
options.exprContextCritical &&
|
139
|
-
"the request of a dependency is an expression";
|
140
|
-
return dep;
|
141
|
-
}
|
142
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const ContextDependencyHelpers = exports;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Escapes regular expression metacharacters
|
11
|
+
* @param {string} str String to quote
|
12
|
+
* @returns {string} Escaped string
|
13
|
+
*/
|
14
|
+
const quotemeta = str => {
|
15
|
+
return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
|
16
|
+
};
|
17
|
+
|
18
|
+
ContextDependencyHelpers.create = (
|
19
|
+
Dep,
|
20
|
+
range,
|
21
|
+
param,
|
22
|
+
expr,
|
23
|
+
options,
|
24
|
+
contextOptions
|
25
|
+
) => {
|
26
|
+
let dep;
|
27
|
+
let prefix;
|
28
|
+
let postfix;
|
29
|
+
let prefixRange;
|
30
|
+
let valueRange;
|
31
|
+
let idx;
|
32
|
+
let context;
|
33
|
+
let regExp;
|
34
|
+
if (param.isTemplateString()) {
|
35
|
+
prefix = param.quasis[0].string;
|
36
|
+
postfix =
|
37
|
+
param.quasis.length > 1
|
38
|
+
? param.quasis[param.quasis.length - 1].string
|
39
|
+
: "";
|
40
|
+
prefixRange = [param.quasis[0].range[0], param.quasis[0].range[1]];
|
41
|
+
valueRange = param.range;
|
42
|
+
idx = prefix.lastIndexOf("/");
|
43
|
+
context = ".";
|
44
|
+
if (idx >= 0) {
|
45
|
+
context = prefix.substr(0, idx);
|
46
|
+
prefix = `.${prefix.substr(idx)}`;
|
47
|
+
}
|
48
|
+
// If there are more than two quasis, maybe the generated RegExp can be more precise?
|
49
|
+
regExp = new RegExp(
|
50
|
+
`^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
|
51
|
+
postfix
|
52
|
+
)}$`
|
53
|
+
);
|
54
|
+
dep = new Dep(
|
55
|
+
Object.assign(
|
56
|
+
{
|
57
|
+
request: context,
|
58
|
+
recursive: options.wrappedContextRecursive,
|
59
|
+
regExp,
|
60
|
+
mode: "sync"
|
61
|
+
},
|
62
|
+
contextOptions
|
63
|
+
),
|
64
|
+
range,
|
65
|
+
valueRange
|
66
|
+
);
|
67
|
+
dep.loc = expr.loc;
|
68
|
+
dep.replaces = [
|
69
|
+
{
|
70
|
+
range: prefixRange,
|
71
|
+
value: prefix
|
72
|
+
}
|
73
|
+
];
|
74
|
+
dep.critical =
|
75
|
+
options.wrappedContextCritical &&
|
76
|
+
"a part of the request of a dependency is an expression";
|
77
|
+
return dep;
|
78
|
+
} else if (
|
79
|
+
param.isWrapped() &&
|
80
|
+
((param.prefix && param.prefix.isString()) ||
|
81
|
+
(param.postfix && param.postfix.isString()))
|
82
|
+
) {
|
83
|
+
prefix = param.prefix && param.prefix.isString() ? param.prefix.string : "";
|
84
|
+
postfix =
|
85
|
+
param.postfix && param.postfix.isString() ? param.postfix.string : "";
|
86
|
+
prefixRange =
|
87
|
+
param.prefix && param.prefix.isString() ? param.prefix.range : null;
|
88
|
+
valueRange = [
|
89
|
+
prefixRange ? prefixRange[1] : param.range[0],
|
90
|
+
param.range[1]
|
91
|
+
];
|
92
|
+
idx = prefix.lastIndexOf("/");
|
93
|
+
context = ".";
|
94
|
+
if (idx >= 0) {
|
95
|
+
context = prefix.substr(0, idx);
|
96
|
+
prefix = `.${prefix.substr(idx)}`;
|
97
|
+
}
|
98
|
+
regExp = new RegExp(
|
99
|
+
`^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
|
100
|
+
postfix
|
101
|
+
)}$`
|
102
|
+
);
|
103
|
+
dep = new Dep(
|
104
|
+
Object.assign(
|
105
|
+
{
|
106
|
+
request: context,
|
107
|
+
recursive: options.wrappedContextRecursive,
|
108
|
+
regExp,
|
109
|
+
mode: "sync"
|
110
|
+
},
|
111
|
+
contextOptions
|
112
|
+
),
|
113
|
+
range,
|
114
|
+
valueRange
|
115
|
+
);
|
116
|
+
dep.loc = expr.loc;
|
117
|
+
dep.prepend = param.prefix && param.prefix.isString() ? prefix : null;
|
118
|
+
dep.critical =
|
119
|
+
options.wrappedContextCritical &&
|
120
|
+
"a part of the request of a dependency is an expression";
|
121
|
+
return dep;
|
122
|
+
} else {
|
123
|
+
dep = new Dep(
|
124
|
+
Object.assign(
|
125
|
+
{
|
126
|
+
request: options.exprContextRequest,
|
127
|
+
recursive: options.exprContextRecursive,
|
128
|
+
regExp: options.exprContextRegExp,
|
129
|
+
mode: "sync"
|
130
|
+
},
|
131
|
+
contextOptions
|
132
|
+
),
|
133
|
+
range,
|
134
|
+
param.range
|
135
|
+
);
|
136
|
+
dep.loc = expr.loc;
|
137
|
+
dep.critical =
|
138
|
+
options.exprContextCritical &&
|
139
|
+
"the request of a dependency is an expression";
|
140
|
+
return dep;
|
141
|
+
}
|
142
|
+
};
|
@@ -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;
|