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,34 +1,34 @@
|
|
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 ImportWeakDependency extends ModuleDependency {
|
9
|
-
constructor(request, originModule, range) {
|
10
|
-
super(request);
|
11
|
-
this.originModule = originModule;
|
12
|
-
this.range = range;
|
13
|
-
this.weak = true;
|
14
|
-
}
|
15
|
-
|
16
|
-
get type() {
|
17
|
-
return "import() weak";
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
ImportWeakDependency.Template = class ImportDependencyTemplate {
|
22
|
-
apply(dep, source, runtime) {
|
23
|
-
const content = runtime.moduleNamespacePromise({
|
24
|
-
module: dep.module,
|
25
|
-
request: dep.request,
|
26
|
-
strict: dep.originModule.buildMeta.strictHarmonyModule,
|
27
|
-
message: "import() weak",
|
28
|
-
weak: true
|
29
|
-
});
|
30
|
-
source.replace(dep.range[0], dep.range[1] - 1, content);
|
31
|
-
}
|
32
|
-
};
|
33
|
-
|
34
|
-
module.exports = ImportWeakDependency;
|
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 ImportWeakDependency extends ModuleDependency {
|
9
|
+
constructor(request, originModule, range) {
|
10
|
+
super(request);
|
11
|
+
this.originModule = originModule;
|
12
|
+
this.range = range;
|
13
|
+
this.weak = true;
|
14
|
+
}
|
15
|
+
|
16
|
+
get type() {
|
17
|
+
return "import() weak";
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
ImportWeakDependency.Template = class ImportDependencyTemplate {
|
22
|
+
apply(dep, source, runtime) {
|
23
|
+
const content = runtime.moduleNamespacePromise({
|
24
|
+
module: dep.module,
|
25
|
+
request: dep.request,
|
26
|
+
strict: dep.originModule.buildMeta.strictHarmonyModule,
|
27
|
+
message: "import() weak",
|
28
|
+
weak: true
|
29
|
+
});
|
30
|
+
source.replace(dep.range[0], dep.range[1] - 1, content);
|
31
|
+
}
|
32
|
+
};
|
33
|
+
|
34
|
+
module.exports = ImportWeakDependency;
|
@@ -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 JsonExportsDependency extends NullDependency {
|
9
|
-
constructor(exports) {
|
10
|
-
super();
|
11
|
-
this.exports = exports;
|
12
|
-
}
|
13
|
-
|
14
|
-
get type() {
|
15
|
-
return "json exports";
|
16
|
-
}
|
17
|
-
|
18
|
-
getExports() {
|
19
|
-
return {
|
20
|
-
exports: this.exports,
|
21
|
-
dependencies: undefined
|
22
|
-
};
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
module.exports = JsonExportsDependency;
|
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 JsonExportsDependency extends NullDependency {
|
9
|
+
constructor(exports) {
|
10
|
+
super();
|
11
|
+
this.exports = exports;
|
12
|
+
}
|
13
|
+
|
14
|
+
get type() {
|
15
|
+
return "json exports";
|
16
|
+
}
|
17
|
+
|
18
|
+
getExports() {
|
19
|
+
return {
|
20
|
+
exports: this.exports,
|
21
|
+
dependencies: undefined
|
22
|
+
};
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
module.exports = JsonExportsDependency;
|
@@ -1,93 +1,98 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const LoaderDependency = require("./LoaderDependency");
|
8
|
-
|
9
|
-
class LoaderPlugin {
|
10
|
-
apply(compiler) {
|
11
|
-
compiler.hooks.compilation.tap(
|
12
|
-
"LoaderPlugin",
|
13
|
-
(compilation, { normalModuleFactory }) => {
|
14
|
-
compilation.dependencyFactories.set(
|
15
|
-
LoaderDependency,
|
16
|
-
normalModuleFactory
|
17
|
-
);
|
18
|
-
}
|
19
|
-
);
|
20
|
-
|
21
|
-
compiler.hooks.compilation.tap("LoaderPlugin", compilation => {
|
22
|
-
compilation.hooks.normalModuleLoader.tap(
|
23
|
-
"LoaderPlugin",
|
24
|
-
(loaderContext, module) => {
|
25
|
-
loaderContext.loadModule = (request, callback) => {
|
26
|
-
const dep = new LoaderDependency(request);
|
27
|
-
dep.loc = request;
|
28
|
-
const factory = compilation.dependencyFactories.get(
|
29
|
-
dep.constructor
|
30
|
-
);
|
31
|
-
if (factory === undefined)
|
32
|
-
return callback(
|
33
|
-
new Error(
|
34
|
-
`No module factory available for dependency type: ${
|
35
|
-
dep.constructor.name
|
36
|
-
}`
|
37
|
-
)
|
38
|
-
);
|
39
|
-
|
40
|
-
compilation.
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
}
|
78
|
-
if (dep.module.buildInfo.
|
79
|
-
for (const d of dep.module.buildInfo.
|
80
|
-
loaderContext.
|
81
|
-
}
|
82
|
-
}
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
}
|
93
|
-
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const LoaderDependency = require("./LoaderDependency");
|
8
|
+
|
9
|
+
class LoaderPlugin {
|
10
|
+
apply(compiler) {
|
11
|
+
compiler.hooks.compilation.tap(
|
12
|
+
"LoaderPlugin",
|
13
|
+
(compilation, { normalModuleFactory }) => {
|
14
|
+
compilation.dependencyFactories.set(
|
15
|
+
LoaderDependency,
|
16
|
+
normalModuleFactory
|
17
|
+
);
|
18
|
+
}
|
19
|
+
);
|
20
|
+
|
21
|
+
compiler.hooks.compilation.tap("LoaderPlugin", compilation => {
|
22
|
+
compilation.hooks.normalModuleLoader.tap(
|
23
|
+
"LoaderPlugin",
|
24
|
+
(loaderContext, module) => {
|
25
|
+
loaderContext.loadModule = (request, callback) => {
|
26
|
+
const dep = new LoaderDependency(request);
|
27
|
+
dep.loc = request;
|
28
|
+
const factory = compilation.dependencyFactories.get(
|
29
|
+
dep.constructor
|
30
|
+
);
|
31
|
+
if (factory === undefined) {
|
32
|
+
return callback(
|
33
|
+
new Error(
|
34
|
+
`No module factory available for dependency type: ${
|
35
|
+
dep.constructor.name
|
36
|
+
}`
|
37
|
+
)
|
38
|
+
);
|
39
|
+
}
|
40
|
+
compilation.semaphore.release();
|
41
|
+
compilation.addModuleDependencies(
|
42
|
+
module,
|
43
|
+
[
|
44
|
+
{
|
45
|
+
factory,
|
46
|
+
dependencies: [dep]
|
47
|
+
}
|
48
|
+
],
|
49
|
+
true,
|
50
|
+
"lm",
|
51
|
+
true,
|
52
|
+
err => {
|
53
|
+
compilation.semaphore.acquire(() => {
|
54
|
+
if (err) {
|
55
|
+
return callback(err);
|
56
|
+
}
|
57
|
+
if (!dep.module) {
|
58
|
+
return callback(new Error("Cannot load the module"));
|
59
|
+
}
|
60
|
+
if (dep.module.error) {
|
61
|
+
return callback(dep.module.error);
|
62
|
+
}
|
63
|
+
if (!dep.module._source) {
|
64
|
+
throw new Error(
|
65
|
+
"The module created for a LoaderDependency must have a property _source"
|
66
|
+
);
|
67
|
+
}
|
68
|
+
let source, map;
|
69
|
+
const moduleSource = dep.module._source;
|
70
|
+
if (moduleSource.sourceAndMap) {
|
71
|
+
const sourceAndMap = moduleSource.sourceAndMap();
|
72
|
+
map = sourceAndMap.map;
|
73
|
+
source = sourceAndMap.source;
|
74
|
+
} else {
|
75
|
+
map = moduleSource.map();
|
76
|
+
source = moduleSource.source();
|
77
|
+
}
|
78
|
+
if (dep.module.buildInfo.fileDependencies) {
|
79
|
+
for (const d of dep.module.buildInfo.fileDependencies) {
|
80
|
+
loaderContext.addDependency(d);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
if (dep.module.buildInfo.contextDependencies) {
|
84
|
+
for (const d of dep.module.buildInfo.contextDependencies) {
|
85
|
+
loaderContext.addContextDependency(d);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
return callback(null, source, map, dep.module);
|
89
|
+
});
|
90
|
+
}
|
91
|
+
);
|
92
|
+
};
|
93
|
+
}
|
94
|
+
);
|
95
|
+
});
|
96
|
+
}
|
97
|
+
}
|
98
|
+
module.exports = LoaderPlugin;
|
@@ -1,28 +1,28 @@
|
|
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 LocalModuleDependency extends NullDependency {
|
9
|
-
constructor(localModule, range, callNew) {
|
10
|
-
super();
|
11
|
-
localModule.flagUsed();
|
12
|
-
this.localModule = localModule;
|
13
|
-
this.range = range;
|
14
|
-
this.callNew = callNew;
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
LocalModuleDependency.Template = class LocalModuleDependencyTemplate {
|
19
|
-
apply(dep, source) {
|
20
|
-
if (!dep.range) return;
|
21
|
-
const moduleInstance = dep.callNew
|
22
|
-
? `new (function () { return ${dep.localModule.variableName()}; })()`
|
23
|
-
: dep.localModule.variableName();
|
24
|
-
source.replace(dep.range[0], dep.range[1] - 1, moduleInstance);
|
25
|
-
}
|
26
|
-
};
|
27
|
-
|
28
|
-
module.exports = LocalModuleDependency;
|
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 LocalModuleDependency extends NullDependency {
|
9
|
+
constructor(localModule, range, callNew) {
|
10
|
+
super();
|
11
|
+
localModule.flagUsed();
|
12
|
+
this.localModule = localModule;
|
13
|
+
this.range = range;
|
14
|
+
this.callNew = callNew;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
LocalModuleDependency.Template = class LocalModuleDependencyTemplate {
|
19
|
+
apply(dep, source) {
|
20
|
+
if (!dep.range) return;
|
21
|
+
const moduleInstance = dep.callNew
|
22
|
+
? `new (function () { return ${dep.localModule.variableName()}; })()`
|
23
|
+
: dep.localModule.variableName();
|
24
|
+
source.replace(dep.range[0], dep.range[1] - 1, moduleInstance);
|
25
|
+
}
|
26
|
+
};
|
27
|
+
|
28
|
+
module.exports = LocalModuleDependency;
|
@@ -1,45 +1,52 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const LocalModule = require("./LocalModule");
|
8
|
-
const LocalModulesHelpers = exports;
|
9
|
-
|
10
|
-
const lookup = (parent, mod) => {
|
11
|
-
if (mod.charAt(0) !== ".") return mod;
|
12
|
-
|
13
|
-
var path = parent.split("/")
|
14
|
-
|
15
|
-
path.pop();
|
16
|
-
|
17
|
-
for (let i = 0; i < segs.length; i++) {
|
18
|
-
const seg = segs[i];
|
19
|
-
if (seg === "..")
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
}
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
}
|
44
|
-
|
45
|
-
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const LocalModule = require("./LocalModule");
|
8
|
+
const LocalModulesHelpers = exports;
|
9
|
+
|
10
|
+
const lookup = (parent, mod) => {
|
11
|
+
if (mod.charAt(0) !== ".") return mod;
|
12
|
+
|
13
|
+
var path = parent.split("/");
|
14
|
+
var segs = mod.split("/");
|
15
|
+
path.pop();
|
16
|
+
|
17
|
+
for (let i = 0; i < segs.length; i++) {
|
18
|
+
const seg = segs[i];
|
19
|
+
if (seg === "..") {
|
20
|
+
path.pop();
|
21
|
+
} else if (seg !== ".") {
|
22
|
+
path.push(seg);
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
return path.join("/");
|
27
|
+
};
|
28
|
+
|
29
|
+
LocalModulesHelpers.addLocalModule = (state, name) => {
|
30
|
+
if (!state.localModules) {
|
31
|
+
state.localModules = [];
|
32
|
+
}
|
33
|
+
const m = new LocalModule(state.module, name, state.localModules.length);
|
34
|
+
state.localModules.push(m);
|
35
|
+
return m;
|
36
|
+
};
|
37
|
+
|
38
|
+
LocalModulesHelpers.getLocalModule = (state, name, namedModule) => {
|
39
|
+
if (!state.localModules) return null;
|
40
|
+
if (namedModule) {
|
41
|
+
// resolve dependency name relative to the defining named module
|
42
|
+
name = lookup(namedModule, name);
|
43
|
+
}
|
44
|
+
for (let i = 0; i < state.localModules.length; i++) {
|
45
|
+
if (state.localModules[i].name === name) {
|
46
|
+
return state.localModules[i];
|
47
|
+
}
|
48
|
+
}
|
49
|
+
return null;
|
50
|
+
};
|
51
|
+
|
52
|
+
module.exports = LocalModulesHelpers;
|
@@ -1,20 +1,20 @@
|
|
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
|
-
|
8
|
-
class ModuleDependency extends Dependency {
|
9
|
-
constructor(request) {
|
10
|
-
super();
|
11
|
-
this.request = request;
|
12
|
-
this.userRequest = request;
|
13
|
-
}
|
14
|
-
|
15
|
-
getResourceIdentifier() {
|
16
|
-
return `module${this.request}`;
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
module.exports = ModuleDependency;
|
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
|
+
|
8
|
+
class ModuleDependency extends Dependency {
|
9
|
+
constructor(request) {
|
10
|
+
super();
|
11
|
+
this.request = request;
|
12
|
+
this.userRequest = request;
|
13
|
+
}
|
14
|
+
|
15
|
+
getResourceIdentifier() {
|
16
|
+
return `module${this.request}`;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
module.exports = ModuleDependency;
|
@@ -1,17 +1,17 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
class ModuleDependencyTemplateAsId {
|
8
|
-
apply(dep, source, runtime) {
|
9
|
-
if (!dep.range) return;
|
10
|
-
const content = runtime.moduleId({
|
11
|
-
module: dep.module,
|
12
|
-
request: dep.request
|
13
|
-
});
|
14
|
-
source.replace(dep.range[0], dep.range[1] - 1, content);
|
15
|
-
}
|
16
|
-
}
|
17
|
-
module.exports = ModuleDependencyTemplateAsId;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
class ModuleDependencyTemplateAsId {
|
8
|
+
apply(dep, source, runtime) {
|
9
|
+
if (!dep.range) return;
|
10
|
+
const content = runtime.moduleId({
|
11
|
+
module: dep.module,
|
12
|
+
request: dep.request
|
13
|
+
});
|
14
|
+
source.replace(dep.range[0], dep.range[1] - 1, content);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
module.exports = ModuleDependencyTemplateAsId;
|
@@ -1,17 +1,17 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
class ModuleDependencyTemplateAsRequireId {
|
8
|
-
apply(dep, source, runtime) {
|
9
|
-
if (!dep.range) return;
|
10
|
-
const content = runtime.moduleExports({
|
11
|
-
module: dep.module,
|
12
|
-
request: dep.request
|
13
|
-
});
|
14
|
-
source.replace(dep.range[0], dep.range[1] - 1, content);
|
15
|
-
}
|
16
|
-
}
|
17
|
-
module.exports = ModuleDependencyTemplateAsRequireId;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
class ModuleDependencyTemplateAsRequireId {
|
8
|
+
apply(dep, source, runtime) {
|
9
|
+
if (!dep.range) return;
|
10
|
+
const content = runtime.moduleExports({
|
11
|
+
module: dep.module,
|
12
|
+
request: dep.request
|
13
|
+
});
|
14
|
+
source.replace(dep.range[0], dep.range[1] - 1, content);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
module.exports = ModuleDependencyTemplateAsRequireId;
|
@@ -1,20 +1,20 @@
|
|
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
|
-
|
8
|
-
class MultiEntryDependency extends Dependency {
|
9
|
-
constructor(dependencies, name) {
|
10
|
-
super();
|
11
|
-
this.dependencies = dependencies;
|
12
|
-
this.name = name;
|
13
|
-
}
|
14
|
-
|
15
|
-
get type() {
|
16
|
-
return "multi entry";
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
module.exports = MultiEntryDependency;
|
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
|
+
|
8
|
+
class MultiEntryDependency extends Dependency {
|
9
|
+
constructor(dependencies, name) {
|
10
|
+
super();
|
11
|
+
this.dependencies = dependencies;
|
12
|
+
this.name = name;
|
13
|
+
}
|
14
|
+
|
15
|
+
get type() {
|
16
|
+
return "multi entry";
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
module.exports = MultiEntryDependency;
|
@@ -1,20 +1,20 @@
|
|
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
|
-
|
8
|
-
class NullDependency extends Dependency {
|
9
|
-
get type() {
|
10
|
-
return "null";
|
11
|
-
}
|
12
|
-
|
13
|
-
updateHash() {}
|
14
|
-
}
|
15
|
-
|
16
|
-
NullDependency.Template = class NullDependencyTemplate {
|
17
|
-
apply() {}
|
18
|
-
};
|
19
|
-
|
20
|
-
module.exports = NullDependency;
|
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
|
+
|
8
|
+
class NullDependency extends Dependency {
|
9
|
+
get type() {
|
10
|
+
return "null";
|
11
|
+
}
|
12
|
+
|
13
|
+
updateHash() {}
|
14
|
+
}
|
15
|
+
|
16
|
+
NullDependency.Template = class NullDependencyTemplate {
|
17
|
+
apply() {}
|
18
|
+
};
|
19
|
+
|
20
|
+
module.exports = NullDependency;
|