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,135 +1,135 @@
|
|
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 AMDRequireDependency extends NullDependency {
|
9
|
-
constructor(block) {
|
10
|
-
super();
|
11
|
-
this.block = block;
|
12
|
-
}
|
13
|
-
}
|
14
|
-
|
15
|
-
AMDRequireDependency.Template = class AMDRequireDependencyTemplate {
|
16
|
-
apply(dep, source, runtime) {
|
17
|
-
const depBlock = dep.block;
|
18
|
-
const promise = runtime.blockPromise({
|
19
|
-
block: depBlock,
|
20
|
-
message: "AMD require"
|
21
|
-
});
|
22
|
-
|
23
|
-
// has array range but no function range
|
24
|
-
if (depBlock.arrayRange && !depBlock.functionRange) {
|
25
|
-
const startBlock = `${promise}.then(function() {`;
|
26
|
-
const endBlock = `;}).catch(${runtime.onError()})`;
|
27
|
-
source.replace(
|
28
|
-
depBlock.outerRange[0],
|
29
|
-
depBlock.arrayRange[0] - 1,
|
30
|
-
startBlock
|
31
|
-
);
|
32
|
-
source.replace(
|
33
|
-
depBlock.arrayRange[1],
|
34
|
-
depBlock.outerRange[1] - 1,
|
35
|
-
endBlock
|
36
|
-
);
|
37
|
-
return;
|
38
|
-
}
|
39
|
-
|
40
|
-
// has function range but no array range
|
41
|
-
if (depBlock.functionRange && !depBlock.arrayRange) {
|
42
|
-
const startBlock = `${promise}.then((`;
|
43
|
-
const endBlock = `).bind(exports, __webpack_require__, exports, module)).catch(${runtime.onError()})`;
|
44
|
-
source.replace(
|
45
|
-
depBlock.outerRange[0],
|
46
|
-
depBlock.functionRange[0] - 1,
|
47
|
-
startBlock
|
48
|
-
);
|
49
|
-
source.replace(
|
50
|
-
depBlock.functionRange[1],
|
51
|
-
depBlock.outerRange[1] - 1,
|
52
|
-
endBlock
|
53
|
-
);
|
54
|
-
return;
|
55
|
-
}
|
56
|
-
|
57
|
-
// has array range, function range, and errorCallbackRange
|
58
|
-
if (
|
59
|
-
depBlock.arrayRange &&
|
60
|
-
depBlock.functionRange &&
|
61
|
-
depBlock.errorCallbackRange
|
62
|
-
) {
|
63
|
-
const startBlock = `${promise}.then(function() { `;
|
64
|
-
const errorRangeBlock = `}${
|
65
|
-
depBlock.functionBindThis ? ".bind(this)" : ""
|
66
|
-
}).catch(`;
|
67
|
-
const endBlock = `${
|
68
|
-
depBlock.errorCallbackBindThis ? ".bind(this)" : ""
|
69
|
-
})`;
|
70
|
-
|
71
|
-
source.replace(
|
72
|
-
depBlock.outerRange[0],
|
73
|
-
depBlock.arrayRange[0] - 1,
|
74
|
-
startBlock
|
75
|
-
);
|
76
|
-
source.insert(
|
77
|
-
depBlock.arrayRange[0] + 0.9,
|
78
|
-
"var __WEBPACK_AMD_REQUIRE_ARRAY__ = "
|
79
|
-
);
|
80
|
-
source.replace(
|
81
|
-
depBlock.arrayRange[1],
|
82
|
-
depBlock.functionRange[0] - 1,
|
83
|
-
"; ("
|
84
|
-
);
|
85
|
-
source.insert(
|
86
|
-
depBlock.functionRange[1],
|
87
|
-
").apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__);"
|
88
|
-
);
|
89
|
-
source.replace(
|
90
|
-
depBlock.functionRange[1],
|
91
|
-
depBlock.errorCallbackRange[0] - 1,
|
92
|
-
errorRangeBlock
|
93
|
-
);
|
94
|
-
source.replace(
|
95
|
-
depBlock.errorCallbackRange[1],
|
96
|
-
depBlock.outerRange[1] - 1,
|
97
|
-
endBlock
|
98
|
-
);
|
99
|
-
return;
|
100
|
-
}
|
101
|
-
|
102
|
-
// has array range, function range, but no errorCallbackRange
|
103
|
-
if (depBlock.arrayRange && depBlock.functionRange) {
|
104
|
-
const startBlock = `${promise}.then(function() { `;
|
105
|
-
const endBlock = `}${
|
106
|
-
depBlock.functionBindThis ? ".bind(this)" : ""
|
107
|
-
}).catch(${runtime.onError()})`;
|
108
|
-
source.replace(
|
109
|
-
depBlock.outerRange[0],
|
110
|
-
depBlock.arrayRange[0] - 1,
|
111
|
-
startBlock
|
112
|
-
);
|
113
|
-
source.insert(
|
114
|
-
depBlock.arrayRange[0] + 0.9,
|
115
|
-
"var __WEBPACK_AMD_REQUIRE_ARRAY__ = "
|
116
|
-
);
|
117
|
-
source.replace(
|
118
|
-
depBlock.arrayRange[1],
|
119
|
-
depBlock.functionRange[0] - 1,
|
120
|
-
"; ("
|
121
|
-
);
|
122
|
-
source.insert(
|
123
|
-
depBlock.functionRange[1],
|
124
|
-
").apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__);"
|
125
|
-
);
|
126
|
-
source.replace(
|
127
|
-
depBlock.functionRange[1],
|
128
|
-
depBlock.outerRange[1] - 1,
|
129
|
-
endBlock
|
130
|
-
);
|
131
|
-
}
|
132
|
-
}
|
133
|
-
};
|
134
|
-
|
135
|
-
module.exports = AMDRequireDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const NullDependency = require("./NullDependency");
|
7
|
+
|
8
|
+
class AMDRequireDependency extends NullDependency {
|
9
|
+
constructor(block) {
|
10
|
+
super();
|
11
|
+
this.block = block;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
AMDRequireDependency.Template = class AMDRequireDependencyTemplate {
|
16
|
+
apply(dep, source, runtime) {
|
17
|
+
const depBlock = dep.block;
|
18
|
+
const promise = runtime.blockPromise({
|
19
|
+
block: depBlock,
|
20
|
+
message: "AMD require"
|
21
|
+
});
|
22
|
+
|
23
|
+
// has array range but no function range
|
24
|
+
if (depBlock.arrayRange && !depBlock.functionRange) {
|
25
|
+
const startBlock = `${promise}.then(function() {`;
|
26
|
+
const endBlock = `;}).catch(${runtime.onError()})`;
|
27
|
+
source.replace(
|
28
|
+
depBlock.outerRange[0],
|
29
|
+
depBlock.arrayRange[0] - 1,
|
30
|
+
startBlock
|
31
|
+
);
|
32
|
+
source.replace(
|
33
|
+
depBlock.arrayRange[1],
|
34
|
+
depBlock.outerRange[1] - 1,
|
35
|
+
endBlock
|
36
|
+
);
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
|
40
|
+
// has function range but no array range
|
41
|
+
if (depBlock.functionRange && !depBlock.arrayRange) {
|
42
|
+
const startBlock = `${promise}.then((`;
|
43
|
+
const endBlock = `).bind(exports, __webpack_require__, exports, module)).catch(${runtime.onError()})`;
|
44
|
+
source.replace(
|
45
|
+
depBlock.outerRange[0],
|
46
|
+
depBlock.functionRange[0] - 1,
|
47
|
+
startBlock
|
48
|
+
);
|
49
|
+
source.replace(
|
50
|
+
depBlock.functionRange[1],
|
51
|
+
depBlock.outerRange[1] - 1,
|
52
|
+
endBlock
|
53
|
+
);
|
54
|
+
return;
|
55
|
+
}
|
56
|
+
|
57
|
+
// has array range, function range, and errorCallbackRange
|
58
|
+
if (
|
59
|
+
depBlock.arrayRange &&
|
60
|
+
depBlock.functionRange &&
|
61
|
+
depBlock.errorCallbackRange
|
62
|
+
) {
|
63
|
+
const startBlock = `${promise}.then(function() { `;
|
64
|
+
const errorRangeBlock = `}${
|
65
|
+
depBlock.functionBindThis ? ".bind(this)" : ""
|
66
|
+
}).catch(`;
|
67
|
+
const endBlock = `${
|
68
|
+
depBlock.errorCallbackBindThis ? ".bind(this)" : ""
|
69
|
+
})`;
|
70
|
+
|
71
|
+
source.replace(
|
72
|
+
depBlock.outerRange[0],
|
73
|
+
depBlock.arrayRange[0] - 1,
|
74
|
+
startBlock
|
75
|
+
);
|
76
|
+
source.insert(
|
77
|
+
depBlock.arrayRange[0] + 0.9,
|
78
|
+
"var __WEBPACK_AMD_REQUIRE_ARRAY__ = "
|
79
|
+
);
|
80
|
+
source.replace(
|
81
|
+
depBlock.arrayRange[1],
|
82
|
+
depBlock.functionRange[0] - 1,
|
83
|
+
"; ("
|
84
|
+
);
|
85
|
+
source.insert(
|
86
|
+
depBlock.functionRange[1],
|
87
|
+
").apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__);"
|
88
|
+
);
|
89
|
+
source.replace(
|
90
|
+
depBlock.functionRange[1],
|
91
|
+
depBlock.errorCallbackRange[0] - 1,
|
92
|
+
errorRangeBlock
|
93
|
+
);
|
94
|
+
source.replace(
|
95
|
+
depBlock.errorCallbackRange[1],
|
96
|
+
depBlock.outerRange[1] - 1,
|
97
|
+
endBlock
|
98
|
+
);
|
99
|
+
return;
|
100
|
+
}
|
101
|
+
|
102
|
+
// has array range, function range, but no errorCallbackRange
|
103
|
+
if (depBlock.arrayRange && depBlock.functionRange) {
|
104
|
+
const startBlock = `${promise}.then(function() { `;
|
105
|
+
const endBlock = `}${
|
106
|
+
depBlock.functionBindThis ? ".bind(this)" : ""
|
107
|
+
}).catch(${runtime.onError()})`;
|
108
|
+
source.replace(
|
109
|
+
depBlock.outerRange[0],
|
110
|
+
depBlock.arrayRange[0] - 1,
|
111
|
+
startBlock
|
112
|
+
);
|
113
|
+
source.insert(
|
114
|
+
depBlock.arrayRange[0] + 0.9,
|
115
|
+
"var __WEBPACK_AMD_REQUIRE_ARRAY__ = "
|
116
|
+
);
|
117
|
+
source.replace(
|
118
|
+
depBlock.arrayRange[1],
|
119
|
+
depBlock.functionRange[0] - 1,
|
120
|
+
"; ("
|
121
|
+
);
|
122
|
+
source.insert(
|
123
|
+
depBlock.functionRange[1],
|
124
|
+
").apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__);"
|
125
|
+
);
|
126
|
+
source.replace(
|
127
|
+
depBlock.functionRange[1],
|
128
|
+
depBlock.outerRange[1] - 1,
|
129
|
+
endBlock
|
130
|
+
);
|
131
|
+
}
|
132
|
+
}
|
133
|
+
};
|
134
|
+
|
135
|
+
module.exports = AMDRequireDependency;
|
@@ -1,22 +1,22 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const ModuleDependency = require("./ModuleDependency");
|
7
|
-
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
|
8
|
-
|
9
|
-
class AMDRequireItemDependency extends ModuleDependency {
|
10
|
-
constructor(request, range) {
|
11
|
-
super(request);
|
12
|
-
this.range = range;
|
13
|
-
}
|
14
|
-
|
15
|
-
get type() {
|
16
|
-
return "amd require";
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
AMDRequireItemDependency.Template = ModuleDependencyTemplateAsRequireId;
|
21
|
-
|
22
|
-
module.exports = AMDRequireItemDependency;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const ModuleDependency = require("./ModuleDependency");
|
7
|
+
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
|
8
|
+
|
9
|
+
class AMDRequireItemDependency extends ModuleDependency {
|
10
|
+
constructor(request, range) {
|
11
|
+
super(request);
|
12
|
+
this.range = range;
|
13
|
+
}
|
14
|
+
|
15
|
+
get type() {
|
16
|
+
return "amd require";
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
AMDRequireItemDependency.Template = ModuleDependencyTemplateAsRequireId;
|
21
|
+
|
22
|
+
module.exports = AMDRequireItemDependency;
|
@@ -1,161 +1,161 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
const ConstDependency = require("./ConstDependency");
|
7
|
-
const CommonJsRequireDependency = require("./CommonJsRequireDependency");
|
8
|
-
const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
|
9
|
-
const RequireResolveDependency = require("./RequireResolveDependency");
|
10
|
-
const RequireResolveContextDependency = require("./RequireResolveContextDependency");
|
11
|
-
const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
|
12
|
-
const RequireHeaderDependency = require("./RequireHeaderDependency");
|
13
|
-
|
14
|
-
const NullFactory = require("../NullFactory");
|
15
|
-
|
16
|
-
const RequireResolveDependencyParserPlugin = require("./RequireResolveDependencyParserPlugin");
|
17
|
-
const CommonJsRequireDependencyParserPlugin = require("./CommonJsRequireDependencyParserPlugin");
|
18
|
-
|
19
|
-
const ParserHelpers = require("../ParserHelpers");
|
20
|
-
|
21
|
-
class CommonJsPlugin {
|
22
|
-
constructor(options) {
|
23
|
-
this.options = options;
|
24
|
-
}
|
25
|
-
|
26
|
-
apply(compiler) {
|
27
|
-
const options = this.options;
|
28
|
-
compiler.hooks.compilation.tap(
|
29
|
-
"CommonJsPlugin",
|
30
|
-
(compilation, { contextModuleFactory, normalModuleFactory }) => {
|
31
|
-
compilation.dependencyFactories.set(
|
32
|
-
CommonJsRequireDependency,
|
33
|
-
normalModuleFactory
|
34
|
-
);
|
35
|
-
compilation.dependencyTemplates.set(
|
36
|
-
CommonJsRequireDependency,
|
37
|
-
new CommonJsRequireDependency.Template()
|
38
|
-
);
|
39
|
-
|
40
|
-
compilation.dependencyFactories.set(
|
41
|
-
CommonJsRequireContextDependency,
|
42
|
-
contextModuleFactory
|
43
|
-
);
|
44
|
-
compilation.dependencyTemplates.set(
|
45
|
-
CommonJsRequireContextDependency,
|
46
|
-
new CommonJsRequireContextDependency.Template()
|
47
|
-
);
|
48
|
-
|
49
|
-
compilation.dependencyFactories.set(
|
50
|
-
RequireResolveDependency,
|
51
|
-
normalModuleFactory
|
52
|
-
);
|
53
|
-
compilation.dependencyTemplates.set(
|
54
|
-
RequireResolveDependency,
|
55
|
-
new RequireResolveDependency.Template()
|
56
|
-
);
|
57
|
-
|
58
|
-
compilation.dependencyFactories.set(
|
59
|
-
RequireResolveContextDependency,
|
60
|
-
contextModuleFactory
|
61
|
-
);
|
62
|
-
compilation.dependencyTemplates.set(
|
63
|
-
RequireResolveContextDependency,
|
64
|
-
new RequireResolveContextDependency.Template()
|
65
|
-
);
|
66
|
-
|
67
|
-
compilation.dependencyFactories.set(
|
68
|
-
RequireResolveHeaderDependency,
|
69
|
-
new NullFactory()
|
70
|
-
);
|
71
|
-
compilation.dependencyTemplates.set(
|
72
|
-
RequireResolveHeaderDependency,
|
73
|
-
new RequireResolveHeaderDependency.Template()
|
74
|
-
);
|
75
|
-
|
76
|
-
compilation.dependencyFactories.set(
|
77
|
-
RequireHeaderDependency,
|
78
|
-
new NullFactory()
|
79
|
-
);
|
80
|
-
compilation.dependencyTemplates.set(
|
81
|
-
RequireHeaderDependency,
|
82
|
-
new RequireHeaderDependency.Template()
|
83
|
-
);
|
84
|
-
|
85
|
-
const handler = (parser, parserOptions) => {
|
86
|
-
if (
|
87
|
-
typeof parserOptions.commonjs !== "undefined" &&
|
88
|
-
!parserOptions.commonjs
|
89
|
-
)
|
90
|
-
return;
|
91
|
-
|
92
|
-
const requireExpressions = [
|
93
|
-
"require",
|
94
|
-
"require.resolve",
|
95
|
-
"require.resolveWeak"
|
96
|
-
];
|
97
|
-
for (let expression of requireExpressions) {
|
98
|
-
parser.hooks.typeof
|
99
|
-
.for(expression)
|
100
|
-
.tap(
|
101
|
-
"CommonJsPlugin",
|
102
|
-
ParserHelpers.toConstantDependency(
|
103
|
-
parser,
|
104
|
-
JSON.stringify("function")
|
105
|
-
)
|
106
|
-
);
|
107
|
-
parser.hooks.evaluateTypeof
|
108
|
-
.for(expression)
|
109
|
-
.tap(
|
110
|
-
"CommonJsPlugin",
|
111
|
-
ParserHelpers.evaluateToString("function")
|
112
|
-
);
|
113
|
-
parser.hooks.evaluateIdentifier
|
114
|
-
.for(expression)
|
115
|
-
.tap(
|
116
|
-
"CommonJsPlugin",
|
117
|
-
ParserHelpers.evaluateToIdentifier(expression, true)
|
118
|
-
);
|
119
|
-
}
|
120
|
-
|
121
|
-
parser.hooks.evaluateTypeof
|
122
|
-
.for("module")
|
123
|
-
.tap("CommonJsPlugin", ParserHelpers.evaluateToString("object"));
|
124
|
-
parser.hooks.assign.for("require").tap("CommonJsPlugin", expr => {
|
125
|
-
// to not leak to global "require", we need to define a local require here.
|
126
|
-
const dep = new ConstDependency("var require;", 0);
|
127
|
-
dep.loc = expr.loc;
|
128
|
-
parser.state.current.addDependency(dep);
|
129
|
-
parser.scope.definitions.add("require");
|
130
|
-
return true;
|
131
|
-
});
|
132
|
-
parser.hooks.canRename
|
133
|
-
.for("require")
|
134
|
-
.tap("CommonJsPlugin", () => true);
|
135
|
-
parser.hooks.rename.for("require").tap("CommonJsPlugin", expr => {
|
136
|
-
// define the require variable. It's still undefined, but not "not defined".
|
137
|
-
const dep = new ConstDependency("var require;", 0);
|
138
|
-
dep.loc = expr.loc;
|
139
|
-
parser.state.current.addDependency(dep);
|
140
|
-
return false;
|
141
|
-
});
|
142
|
-
parser.hooks.typeof.for("module").tap("CommonJsPlugin", () => true);
|
143
|
-
parser.hooks.evaluateTypeof
|
144
|
-
.for("exports")
|
145
|
-
.tap("CommonJsPlugin", ParserHelpers.evaluateToString("object"));
|
146
|
-
|
147
|
-
new CommonJsRequireDependencyParserPlugin(options).apply(parser);
|
148
|
-
new RequireResolveDependencyParserPlugin(options).apply(parser);
|
149
|
-
};
|
150
|
-
|
151
|
-
normalModuleFactory.hooks.parser
|
152
|
-
.for("javascript/auto")
|
153
|
-
.tap("CommonJsPlugin", handler);
|
154
|
-
normalModuleFactory.hooks.parser
|
155
|
-
.for("javascript/dynamic")
|
156
|
-
.tap("CommonJsPlugin", handler);
|
157
|
-
}
|
158
|
-
);
|
159
|
-
}
|
160
|
-
}
|
161
|
-
module.exports = CommonJsPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
const ConstDependency = require("./ConstDependency");
|
7
|
+
const CommonJsRequireDependency = require("./CommonJsRequireDependency");
|
8
|
+
const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
|
9
|
+
const RequireResolveDependency = require("./RequireResolveDependency");
|
10
|
+
const RequireResolveContextDependency = require("./RequireResolveContextDependency");
|
11
|
+
const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
|
12
|
+
const RequireHeaderDependency = require("./RequireHeaderDependency");
|
13
|
+
|
14
|
+
const NullFactory = require("../NullFactory");
|
15
|
+
|
16
|
+
const RequireResolveDependencyParserPlugin = require("./RequireResolveDependencyParserPlugin");
|
17
|
+
const CommonJsRequireDependencyParserPlugin = require("./CommonJsRequireDependencyParserPlugin");
|
18
|
+
|
19
|
+
const ParserHelpers = require("../ParserHelpers");
|
20
|
+
|
21
|
+
class CommonJsPlugin {
|
22
|
+
constructor(options) {
|
23
|
+
this.options = options;
|
24
|
+
}
|
25
|
+
|
26
|
+
apply(compiler) {
|
27
|
+
const options = this.options;
|
28
|
+
compiler.hooks.compilation.tap(
|
29
|
+
"CommonJsPlugin",
|
30
|
+
(compilation, { contextModuleFactory, normalModuleFactory }) => {
|
31
|
+
compilation.dependencyFactories.set(
|
32
|
+
CommonJsRequireDependency,
|
33
|
+
normalModuleFactory
|
34
|
+
);
|
35
|
+
compilation.dependencyTemplates.set(
|
36
|
+
CommonJsRequireDependency,
|
37
|
+
new CommonJsRequireDependency.Template()
|
38
|
+
);
|
39
|
+
|
40
|
+
compilation.dependencyFactories.set(
|
41
|
+
CommonJsRequireContextDependency,
|
42
|
+
contextModuleFactory
|
43
|
+
);
|
44
|
+
compilation.dependencyTemplates.set(
|
45
|
+
CommonJsRequireContextDependency,
|
46
|
+
new CommonJsRequireContextDependency.Template()
|
47
|
+
);
|
48
|
+
|
49
|
+
compilation.dependencyFactories.set(
|
50
|
+
RequireResolveDependency,
|
51
|
+
normalModuleFactory
|
52
|
+
);
|
53
|
+
compilation.dependencyTemplates.set(
|
54
|
+
RequireResolveDependency,
|
55
|
+
new RequireResolveDependency.Template()
|
56
|
+
);
|
57
|
+
|
58
|
+
compilation.dependencyFactories.set(
|
59
|
+
RequireResolveContextDependency,
|
60
|
+
contextModuleFactory
|
61
|
+
);
|
62
|
+
compilation.dependencyTemplates.set(
|
63
|
+
RequireResolveContextDependency,
|
64
|
+
new RequireResolveContextDependency.Template()
|
65
|
+
);
|
66
|
+
|
67
|
+
compilation.dependencyFactories.set(
|
68
|
+
RequireResolveHeaderDependency,
|
69
|
+
new NullFactory()
|
70
|
+
);
|
71
|
+
compilation.dependencyTemplates.set(
|
72
|
+
RequireResolveHeaderDependency,
|
73
|
+
new RequireResolveHeaderDependency.Template()
|
74
|
+
);
|
75
|
+
|
76
|
+
compilation.dependencyFactories.set(
|
77
|
+
RequireHeaderDependency,
|
78
|
+
new NullFactory()
|
79
|
+
);
|
80
|
+
compilation.dependencyTemplates.set(
|
81
|
+
RequireHeaderDependency,
|
82
|
+
new RequireHeaderDependency.Template()
|
83
|
+
);
|
84
|
+
|
85
|
+
const handler = (parser, parserOptions) => {
|
86
|
+
if (
|
87
|
+
typeof parserOptions.commonjs !== "undefined" &&
|
88
|
+
!parserOptions.commonjs
|
89
|
+
)
|
90
|
+
return;
|
91
|
+
|
92
|
+
const requireExpressions = [
|
93
|
+
"require",
|
94
|
+
"require.resolve",
|
95
|
+
"require.resolveWeak"
|
96
|
+
];
|
97
|
+
for (let expression of requireExpressions) {
|
98
|
+
parser.hooks.typeof
|
99
|
+
.for(expression)
|
100
|
+
.tap(
|
101
|
+
"CommonJsPlugin",
|
102
|
+
ParserHelpers.toConstantDependency(
|
103
|
+
parser,
|
104
|
+
JSON.stringify("function")
|
105
|
+
)
|
106
|
+
);
|
107
|
+
parser.hooks.evaluateTypeof
|
108
|
+
.for(expression)
|
109
|
+
.tap(
|
110
|
+
"CommonJsPlugin",
|
111
|
+
ParserHelpers.evaluateToString("function")
|
112
|
+
);
|
113
|
+
parser.hooks.evaluateIdentifier
|
114
|
+
.for(expression)
|
115
|
+
.tap(
|
116
|
+
"CommonJsPlugin",
|
117
|
+
ParserHelpers.evaluateToIdentifier(expression, true)
|
118
|
+
);
|
119
|
+
}
|
120
|
+
|
121
|
+
parser.hooks.evaluateTypeof
|
122
|
+
.for("module")
|
123
|
+
.tap("CommonJsPlugin", ParserHelpers.evaluateToString("object"));
|
124
|
+
parser.hooks.assign.for("require").tap("CommonJsPlugin", expr => {
|
125
|
+
// to not leak to global "require", we need to define a local require here.
|
126
|
+
const dep = new ConstDependency("var require;", 0);
|
127
|
+
dep.loc = expr.loc;
|
128
|
+
parser.state.current.addDependency(dep);
|
129
|
+
parser.scope.definitions.add("require");
|
130
|
+
return true;
|
131
|
+
});
|
132
|
+
parser.hooks.canRename
|
133
|
+
.for("require")
|
134
|
+
.tap("CommonJsPlugin", () => true);
|
135
|
+
parser.hooks.rename.for("require").tap("CommonJsPlugin", expr => {
|
136
|
+
// define the require variable. It's still undefined, but not "not defined".
|
137
|
+
const dep = new ConstDependency("var require;", 0);
|
138
|
+
dep.loc = expr.loc;
|
139
|
+
parser.state.current.addDependency(dep);
|
140
|
+
return false;
|
141
|
+
});
|
142
|
+
parser.hooks.typeof.for("module").tap("CommonJsPlugin", () => true);
|
143
|
+
parser.hooks.evaluateTypeof
|
144
|
+
.for("exports")
|
145
|
+
.tap("CommonJsPlugin", ParserHelpers.evaluateToString("object"));
|
146
|
+
|
147
|
+
new CommonJsRequireDependencyParserPlugin(options).apply(parser);
|
148
|
+
new RequireResolveDependencyParserPlugin(options).apply(parser);
|
149
|
+
};
|
150
|
+
|
151
|
+
normalModuleFactory.hooks.parser
|
152
|
+
.for("javascript/auto")
|
153
|
+
.tap("CommonJsPlugin", handler);
|
154
|
+
normalModuleFactory.hooks.parser
|
155
|
+
.for("javascript/dynamic")
|
156
|
+
.tap("CommonJsPlugin", handler);
|
157
|
+
}
|
158
|
+
);
|
159
|
+
}
|
160
|
+
}
|
161
|
+
module.exports = CommonJsPlugin;
|