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
package/lib/Dependency.js
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
*/
|
5
5
|
"use strict";
|
6
6
|
|
7
|
+
const util = require("util");
|
7
8
|
const compareLocations = require("./compareLocations");
|
8
9
|
const DependencyReference = require("./dependencies/DependencyReference");
|
9
10
|
|
@@ -17,19 +18,19 @@ const DependencyReference = require("./dependencies/DependencyReference");
|
|
17
18
|
*/
|
18
19
|
|
19
20
|
/** @typedef {Object} SourcePosition
|
20
|
-
* @property {number} column
|
21
21
|
* @property {number} line
|
22
|
+
* @property {number=} column
|
22
23
|
*/
|
23
24
|
|
24
25
|
/** @typedef {Object} RealDependencyLocation
|
25
26
|
* @property {SourcePosition} start
|
26
|
-
* @property {SourcePosition} end
|
27
|
+
* @property {SourcePosition=} end
|
27
28
|
* @property {number=} index
|
28
29
|
*/
|
29
30
|
|
30
31
|
/** @typedef {Object} SynteticDependencyLocation
|
31
32
|
* @property {string} name
|
32
|
-
* @property {number} index
|
33
|
+
* @property {number=} index
|
33
34
|
*/
|
34
35
|
|
35
36
|
/** @typedef {SynteticDependencyLocation|RealDependencyLocation} DependencyLocation */
|
@@ -78,6 +79,11 @@ class Dependency {
|
|
78
79
|
this.module = null;
|
79
80
|
}
|
80
81
|
}
|
81
|
-
|
82
|
+
|
83
|
+
// TODO remove in webpack 5
|
84
|
+
Dependency.compare = util.deprecate(
|
85
|
+
(a, b) => compareLocations(a.loc, b.loc),
|
86
|
+
"Dependency.compare is deprecated and will be removed in the next major version"
|
87
|
+
);
|
82
88
|
|
83
89
|
module.exports = Dependency;
|
package/lib/DllModule.js
CHANGED
@@ -1,54 +1,60 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const { RawSource } = require("webpack-sources");
|
8
|
-
const Module = require("./Module");
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
this.
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
this.
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const { RawSource } = require("webpack-sources");
|
8
|
+
const Module = require("./Module");
|
9
|
+
|
10
|
+
/** @typedef {import("./util/createHash").Hash} Hash */
|
11
|
+
|
12
|
+
class DllModule extends Module {
|
13
|
+
constructor(context, dependencies, name, type) {
|
14
|
+
super("javascript/dynamic", context);
|
15
|
+
|
16
|
+
// Info from Factory
|
17
|
+
this.dependencies = dependencies;
|
18
|
+
this.name = name;
|
19
|
+
this.type = type;
|
20
|
+
}
|
21
|
+
|
22
|
+
identifier() {
|
23
|
+
return `dll ${this.name}`;
|
24
|
+
}
|
25
|
+
|
26
|
+
readableIdentifier() {
|
27
|
+
return `dll ${this.name}`;
|
28
|
+
}
|
29
|
+
|
30
|
+
build(options, compilation, resolver, fs, callback) {
|
31
|
+
this.built = true;
|
32
|
+
this.buildMeta = {};
|
33
|
+
this.buildInfo = {};
|
34
|
+
return callback();
|
35
|
+
}
|
36
|
+
|
37
|
+
source() {
|
38
|
+
return new RawSource("module.exports = __webpack_require__;");
|
39
|
+
}
|
40
|
+
|
41
|
+
needRebuild() {
|
42
|
+
return false;
|
43
|
+
}
|
44
|
+
|
45
|
+
size() {
|
46
|
+
return 12;
|
47
|
+
}
|
48
|
+
|
49
|
+
/**
|
50
|
+
* @param {Hash} hash the hash used to track dependencies
|
51
|
+
* @returns {void}
|
52
|
+
*/
|
53
|
+
updateHash(hash) {
|
54
|
+
hash.update("dll module");
|
55
|
+
hash.update(this.name || "");
|
56
|
+
super.updateHash(hash);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
module.exports = DllModule;
|
package/lib/DllModuleFactory.js
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const { Tapable } = require("tapable");
|
8
|
-
const DllModule = require("./DllModule");
|
9
|
-
|
10
|
-
class DllModuleFactory extends Tapable {
|
11
|
-
constructor() {
|
12
|
-
super();
|
13
|
-
this.hooks = {};
|
14
|
-
}
|
15
|
-
create(data, callback) {
|
16
|
-
const dependency = data.dependencies[0];
|
17
|
-
callback(
|
18
|
-
null,
|
19
|
-
new DllModule(
|
20
|
-
data.context,
|
21
|
-
dependency.dependencies,
|
22
|
-
dependency.name,
|
23
|
-
dependency.type
|
24
|
-
)
|
25
|
-
);
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
29
|
-
module.exports = DllModuleFactory;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const { Tapable } = require("tapable");
|
8
|
+
const DllModule = require("./DllModule");
|
9
|
+
|
10
|
+
class DllModuleFactory extends Tapable {
|
11
|
+
constructor() {
|
12
|
+
super();
|
13
|
+
this.hooks = {};
|
14
|
+
}
|
15
|
+
create(data, callback) {
|
16
|
+
const dependency = data.dependencies[0];
|
17
|
+
callback(
|
18
|
+
null,
|
19
|
+
new DllModule(
|
20
|
+
data.context,
|
21
|
+
dependency.dependencies,
|
22
|
+
dependency.name,
|
23
|
+
dependency.type
|
24
|
+
)
|
25
|
+
);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
module.exports = DllModuleFactory;
|
package/lib/DllPlugin.js
CHANGED
@@ -1,44 +1,44 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const DllEntryPlugin = require("./DllEntryPlugin");
|
8
|
-
const LibManifestPlugin = require("./LibManifestPlugin");
|
9
|
-
const FlagInitialModulesAsUsedPlugin = require("./FlagInitialModulesAsUsedPlugin");
|
10
|
-
|
11
|
-
const validateOptions = require("schema-utils");
|
12
|
-
const schema = require("../schemas/plugins/DllPlugin.json");
|
13
|
-
|
14
|
-
class DllPlugin {
|
15
|
-
constructor(options) {
|
16
|
-
validateOptions(schema, options, "Dll Plugin");
|
17
|
-
this.options = options;
|
18
|
-
}
|
19
|
-
|
20
|
-
apply(compiler) {
|
21
|
-
compiler.hooks.entryOption.tap("DllPlugin", (context, entry) => {
|
22
|
-
const itemToPlugin = (item, name) => {
|
23
|
-
if (Array.isArray(item)) {
|
24
|
-
return new DllEntryPlugin(context, item, name);
|
25
|
-
}
|
26
|
-
throw new Error("DllPlugin: supply an Array as entry");
|
27
|
-
};
|
28
|
-
if (typeof entry === "object" && !Array.isArray(entry)) {
|
29
|
-
Object.keys(entry).forEach(name => {
|
30
|
-
itemToPlugin(entry[name], name).apply(compiler);
|
31
|
-
});
|
32
|
-
} else {
|
33
|
-
itemToPlugin(entry, "main").apply(compiler);
|
34
|
-
}
|
35
|
-
return true;
|
36
|
-
});
|
37
|
-
new LibManifestPlugin(this.options).apply(compiler);
|
38
|
-
if (!this.options.entryOnly) {
|
39
|
-
new FlagInitialModulesAsUsedPlugin("DllPlugin").apply(compiler);
|
40
|
-
}
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
module.exports = DllPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const DllEntryPlugin = require("./DllEntryPlugin");
|
8
|
+
const LibManifestPlugin = require("./LibManifestPlugin");
|
9
|
+
const FlagInitialModulesAsUsedPlugin = require("./FlagInitialModulesAsUsedPlugin");
|
10
|
+
|
11
|
+
const validateOptions = require("schema-utils");
|
12
|
+
const schema = require("../schemas/plugins/DllPlugin.json");
|
13
|
+
|
14
|
+
class DllPlugin {
|
15
|
+
constructor(options) {
|
16
|
+
validateOptions(schema, options, "Dll Plugin");
|
17
|
+
this.options = options;
|
18
|
+
}
|
19
|
+
|
20
|
+
apply(compiler) {
|
21
|
+
compiler.hooks.entryOption.tap("DllPlugin", (context, entry) => {
|
22
|
+
const itemToPlugin = (item, name) => {
|
23
|
+
if (Array.isArray(item)) {
|
24
|
+
return new DllEntryPlugin(context, item, name);
|
25
|
+
}
|
26
|
+
throw new Error("DllPlugin: supply an Array as entry");
|
27
|
+
};
|
28
|
+
if (typeof entry === "object" && !Array.isArray(entry)) {
|
29
|
+
Object.keys(entry).forEach(name => {
|
30
|
+
itemToPlugin(entry[name], name).apply(compiler);
|
31
|
+
});
|
32
|
+
} else {
|
33
|
+
itemToPlugin(entry, "main").apply(compiler);
|
34
|
+
}
|
35
|
+
return true;
|
36
|
+
});
|
37
|
+
new LibManifestPlugin(this.options).apply(compiler);
|
38
|
+
if (!this.options.entryOnly) {
|
39
|
+
new FlagInitialModulesAsUsedPlugin("DllPlugin").apply(compiler);
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
module.exports = DllPlugin;
|
@@ -1,84 +1,132 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const parseJson = require("json-parse-better-errors");
|
8
|
-
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
|
9
|
-
const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
|
10
|
-
const ExternalModuleFactoryPlugin = require("./ExternalModuleFactoryPlugin");
|
11
|
-
const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
|
12
|
-
const NullFactory = require("./NullFactory");
|
13
|
-
|
14
|
-
const
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
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
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const parseJson = require("json-parse-better-errors");
|
8
|
+
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
|
9
|
+
const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
|
10
|
+
const ExternalModuleFactoryPlugin = require("./ExternalModuleFactoryPlugin");
|
11
|
+
const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
|
12
|
+
const NullFactory = require("./NullFactory");
|
13
|
+
const makePathsRelative = require("./util/identifier").makePathsRelative;
|
14
|
+
const WebpackError = require("./WebpackError");
|
15
|
+
|
16
|
+
const validateOptions = require("schema-utils");
|
17
|
+
const schema = require("../schemas/plugins/DllReferencePlugin.json");
|
18
|
+
|
19
|
+
class DllReferencePlugin {
|
20
|
+
constructor(options) {
|
21
|
+
validateOptions(schema, options, "Dll Reference Plugin");
|
22
|
+
this.options = options;
|
23
|
+
}
|
24
|
+
|
25
|
+
apply(compiler) {
|
26
|
+
compiler.hooks.compilation.tap(
|
27
|
+
"DllReferencePlugin",
|
28
|
+
(compilation, { normalModuleFactory }) => {
|
29
|
+
compilation.dependencyFactories.set(
|
30
|
+
DelegatedSourceDependency,
|
31
|
+
normalModuleFactory
|
32
|
+
);
|
33
|
+
compilation.dependencyFactories.set(
|
34
|
+
DelegatedExportsDependency,
|
35
|
+
new NullFactory()
|
36
|
+
);
|
37
|
+
}
|
38
|
+
);
|
39
|
+
|
40
|
+
compiler.hooks.beforeCompile.tapAsync(
|
41
|
+
"DllReferencePlugin",
|
42
|
+
(params, callback) => {
|
43
|
+
const manifest = this.options.manifest;
|
44
|
+
if (typeof manifest === "string") {
|
45
|
+
params.compilationDependencies.add(manifest);
|
46
|
+
compiler.inputFileSystem.readFile(manifest, (err, result) => {
|
47
|
+
if (err) return callback(err);
|
48
|
+
// Catch errors parsing the manifest so that blank
|
49
|
+
// or malformed manifest files don't kill the process.
|
50
|
+
try {
|
51
|
+
params["dll reference " + manifest] = parseJson(
|
52
|
+
result.toString("utf-8")
|
53
|
+
);
|
54
|
+
} catch (e) {
|
55
|
+
// Store the error in the params so that it can
|
56
|
+
// be added as a compilation error later on.
|
57
|
+
const manifestPath = makePathsRelative(
|
58
|
+
compiler.options.context,
|
59
|
+
manifest
|
60
|
+
);
|
61
|
+
params[
|
62
|
+
"dll reference parse error " + manifest
|
63
|
+
] = new DllManifestError(manifestPath, e.message);
|
64
|
+
}
|
65
|
+
return callback();
|
66
|
+
});
|
67
|
+
} else {
|
68
|
+
return callback();
|
69
|
+
}
|
70
|
+
}
|
71
|
+
);
|
72
|
+
|
73
|
+
compiler.hooks.compile.tap("DllReferencePlugin", params => {
|
74
|
+
let manifest = this.options.manifest;
|
75
|
+
if (typeof manifest === "string") {
|
76
|
+
// If there was an error parsing the manifest
|
77
|
+
// file, exit now because the error will be added
|
78
|
+
// as a compilation error in the "compilation" hook.
|
79
|
+
if (params["dll reference parse error " + manifest]) {
|
80
|
+
return;
|
81
|
+
}
|
82
|
+
manifest = params["dll reference " + manifest];
|
83
|
+
}
|
84
|
+
const name = this.options.name || manifest.name;
|
85
|
+
const sourceType =
|
86
|
+
this.options.sourceType || (manifest && manifest.type) || "var";
|
87
|
+
const externals = {};
|
88
|
+
const source = "dll-reference " + name;
|
89
|
+
externals[source] = name;
|
90
|
+
const normalModuleFactory = params.normalModuleFactory;
|
91
|
+
new ExternalModuleFactoryPlugin(sourceType, externals).apply(
|
92
|
+
normalModuleFactory
|
93
|
+
);
|
94
|
+
new DelegatedModuleFactoryPlugin({
|
95
|
+
source: source,
|
96
|
+
type: this.options.type,
|
97
|
+
scope: this.options.scope,
|
98
|
+
context: this.options.context || compiler.options.context,
|
99
|
+
content: this.options.content || manifest.content,
|
100
|
+
extensions: this.options.extensions
|
101
|
+
}).apply(normalModuleFactory);
|
102
|
+
});
|
103
|
+
|
104
|
+
compiler.hooks.compilation.tap(
|
105
|
+
"DllReferencePlugin",
|
106
|
+
(compilation, params) => {
|
107
|
+
let manifest = this.options.manifest;
|
108
|
+
if (typeof manifest === "string") {
|
109
|
+
// If there was an error parsing the manifest file, add the
|
110
|
+
// error as a compilation error to make the compilation fail.
|
111
|
+
let e = params["dll reference parse error " + manifest];
|
112
|
+
if (e) {
|
113
|
+
compilation.errors.push(e);
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
);
|
118
|
+
}
|
119
|
+
}
|
120
|
+
|
121
|
+
class DllManifestError extends WebpackError {
|
122
|
+
constructor(filename, message) {
|
123
|
+
super();
|
124
|
+
|
125
|
+
this.name = "DllManifestError";
|
126
|
+
this.message = `Dll manifest ${filename}\n${message}`;
|
127
|
+
|
128
|
+
Error.captureStackTrace(this, this.constructor);
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
module.exports = DllReferencePlugin;
|
@@ -1,21 +1,21 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const WebpackError = require("./WebpackError");
|
8
|
-
|
9
|
-
class EntryModuleNotFoundError extends WebpackError {
|
10
|
-
constructor(err) {
|
11
|
-
super("Entry module not found: " + err);
|
12
|
-
|
13
|
-
this.name = "EntryModuleNotFoundError";
|
14
|
-
this.details = err.details;
|
15
|
-
this.error = err;
|
16
|
-
|
17
|
-
Error.captureStackTrace(this, this.constructor);
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
module.exports = EntryModuleNotFoundError;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const WebpackError = require("./WebpackError");
|
8
|
+
|
9
|
+
class EntryModuleNotFoundError extends WebpackError {
|
10
|
+
constructor(err) {
|
11
|
+
super("Entry module not found: " + err);
|
12
|
+
|
13
|
+
this.name = "EntryModuleNotFoundError";
|
14
|
+
this.details = err.details;
|
15
|
+
this.error = err;
|
16
|
+
|
17
|
+
Error.captureStackTrace(this, this.constructor);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
module.exports = EntryModuleNotFoundError;
|