webpack 3.6.0 → 3.8.1
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 +716 -716
- package/bin/convert-argv.js +1 -1
- package/bin/webpack.js +6 -0
- package/buildin/.eslintrc +7 -7
- package/buildin/amd-define.js +3 -3
- package/buildin/amd-options.js +2 -2
- package/buildin/global.js +21 -21
- package/buildin/harmony-module.js +24 -24
- package/buildin/module.js +22 -22
- package/buildin/system.js +7 -7
- package/hot/.eslintrc +9 -9
- package/hot/dev-server.js +53 -53
- package/hot/emitter.js +2 -2
- package/hot/log-apply-result.js +38 -38
- package/hot/log.js +44 -44
- package/hot/only-dev-server.js +71 -71
- package/hot/poll.js +34 -34
- package/hot/signal.js +51 -51
- package/lib/APIPlugin.js +45 -45
- package/lib/AsyncDependenciesBlock.js +43 -43
- package/lib/AsyncDependencyToInitialChunkWarning.js +21 -0
- package/lib/AutomaticPrefetchPlugin.js +36 -36
- package/lib/BasicEvaluatedExpression.js +203 -203
- package/lib/CaseSensitiveModulesWarning.js +49 -49
- package/lib/Chunk.js +3 -0
- package/lib/ChunkRenderError.js +24 -24
- package/lib/ChunkTemplate.js +36 -36
- package/lib/CompatibilityPlugin.js +57 -57
- package/lib/Compilation.js +158 -51
- package/lib/Compiler.js +523 -523
- package/lib/ConstPlugin.js +60 -60
- package/lib/ContextExclusionPlugin.js +17 -0
- package/lib/ContextModule.js +431 -431
- package/lib/ContextModuleFactory.js +14 -5
- package/lib/ContextReplacementPlugin.js +111 -111
- package/lib/DefinePlugin.js +123 -123
- package/lib/DelegatedModule.js +98 -92
- package/lib/DelegatedModuleFactoryPlugin.js +59 -59
- package/lib/DelegatedPlugin.js +30 -30
- package/lib/DependenciesBlockVariable.js +51 -51
- package/lib/DllEntryPlugin.js +37 -37
- package/lib/DllModule.js +58 -58
- package/lib/DllModuleFactory.js +20 -20
- package/lib/DllPlugin.js +38 -38
- package/lib/DllReferencePlugin.js +62 -62
- package/lib/DynamicEntryPlugin.js +59 -59
- package/lib/EntryModuleNotFoundError.js +22 -22
- package/lib/EntryOptionPlugin.js +31 -31
- package/lib/EnvironmentPlugin.js +50 -50
- package/lib/ErrorHelpers.js +31 -31
- package/lib/EvalDevToolModulePlugin.js +22 -22
- package/lib/EvalDevToolModuleTemplatePlugin.js +33 -33
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +75 -75
- package/lib/EvalSourceMapDevToolPlugin.js +32 -32
- package/lib/ExportPropertyMainTemplatePlugin.js +31 -31
- package/lib/ExtendedAPIPlugin.js +47 -47
- package/lib/ExternalModule.js +7 -0
- package/lib/ExternalModuleFactoryPlugin.js +91 -91
- package/lib/ExternalsPlugin.js +21 -21
- package/lib/FlagDependencyExportsPlugin.js +101 -101
- package/lib/FunctionModulePlugin.js +24 -24
- package/lib/FunctionModuleTemplatePlugin.js +7 -3
- package/lib/HashedModuleIdsPlugin.js +42 -42
- package/lib/HotUpdateChunkTemplate.js +31 -31
- package/lib/IgnorePlugin.js +69 -69
- package/lib/JsonpExportMainTemplatePlugin.js +37 -37
- package/lib/JsonpHotUpdateChunkTemplatePlugin.js +27 -27
- package/lib/JsonpMainTemplate.runtime.js +2 -1
- package/lib/JsonpMainTemplatePlugin.js +2 -0
- package/lib/JsonpTemplatePlugin.js +21 -21
- package/lib/LibManifestPlugin.js +63 -63
- package/lib/LibraryTemplatePlugin.js +92 -92
- package/lib/LoaderOptionsPlugin.js +36 -36
- package/lib/LoaderTargetPlugin.js +19 -19
- package/lib/MemoryOutputFileSystem.js +5 -5
- package/lib/ModuleBuildError.js +42 -42
- package/lib/ModuleDependencyError.js +22 -22
- package/lib/ModuleDependencyWarning.js +22 -22
- package/lib/ModuleError.js +24 -24
- package/lib/ModuleFilenameHelpers.js +162 -162
- package/lib/ModuleNotFoundError.js +26 -26
- package/lib/ModuleParseError.js +1 -1
- package/lib/ModuleReason.js +50 -50
- package/lib/ModuleTemplate.js +23 -23
- package/lib/ModuleWarning.js +24 -24
- package/lib/MovedToPluginWarningPlugin.js +21 -21
- package/lib/MultiCompiler.js +164 -164
- package/lib/MultiEntryPlugin.js +39 -39
- package/lib/MultiModuleFactory.js +19 -19
- package/lib/MultiStats.js +79 -79
- package/lib/MultiWatching.js +32 -32
- package/lib/NamedChunksPlugin.js +30 -30
- package/lib/NamedModulesPlugin.js +27 -27
- package/lib/NewWatchingPlugin.js +15 -15
- package/lib/NoEmitOnErrorsPlugin.js +22 -22
- package/lib/NoErrorsPlugin.js +29 -29
- package/lib/NodeStuffPlugin.js +97 -97
- package/lib/NormalModuleReplacementPlugin.js +45 -45
- package/lib/NullFactory.js +12 -12
- package/lib/OptionsApply.js +10 -10
- package/lib/Parser.js +65 -34
- package/lib/ParserHelpers.js +85 -85
- package/lib/PrefetchPlugin.js +31 -31
- package/lib/ProgressPlugin.js +192 -192
- package/lib/ProvidePlugin.js +55 -55
- package/lib/RawModule.js +54 -54
- package/lib/RequestShortener.js +63 -63
- package/lib/RequireJsStuffPlugin.js +31 -31
- package/lib/RuleSet.js +444 -444
- package/lib/SetVarMainTemplatePlugin.js +41 -41
- package/lib/SingleEntryPlugin.js +35 -35
- package/lib/SizeFormatHelpers.js +18 -18
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +37 -37
- package/lib/Stats.js +27 -8
- package/lib/UmdMainTemplatePlugin.js +1 -1
- package/lib/UnsupportedFeatureWarning.js +21 -21
- package/lib/UseStrictPlugin.js +34 -34
- package/lib/WarnCaseSensitiveModulesPlugin.js +31 -31
- package/lib/WatchIgnorePlugin.js +49 -49
- package/lib/WebpackError.js +11 -11
- package/lib/WebpackOptionsDefaulter.js +129 -129
- package/lib/WebpackOptionsValidationError.js +196 -196
- package/lib/compareLocations.js +36 -36
- package/lib/dependencies/AMDDefineDependency.js +142 -142
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +5 -1
- package/lib/dependencies/AMDPlugin.js +119 -119
- package/lib/dependencies/AMDRequireArrayDependency.js +2 -0
- package/lib/dependencies/AMDRequireContextDependency.js +0 -9
- package/lib/dependencies/AMDRequireDependenciesBlock.js +33 -33
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +177 -177
- package/lib/dependencies/AMDRequireDependency.js +67 -67
- package/lib/dependencies/AMDRequireItemDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireContextDependency.js +0 -10
- package/lib/dependencies/CommonJsRequireDependency.js +22 -22
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +89 -89
- package/lib/dependencies/ConstDependency.js +32 -32
- package/lib/dependencies/ContextDependency.js +20 -0
- package/lib/dependencies/ContextDependencyHelpers.js +71 -71
- package/lib/dependencies/ContextElementDependency.js +21 -21
- package/lib/dependencies/CriticalDependencyWarning.js +20 -20
- package/lib/dependencies/DelegatedExportsDependency.js +33 -33
- package/lib/dependencies/DelegatedSourceDependency.js +18 -18
- package/lib/dependencies/DllEntryDependency.js +20 -20
- package/lib/dependencies/HarmonyCompatibilityDependency.js +30 -30
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +14 -2
- package/lib/dependencies/HarmonyExportExpressionDependency.js +0 -7
- package/lib/dependencies/HarmonyExportHeaderDependency.js +28 -28
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +45 -45
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +0 -13
- package/lib/dependencies/HarmonyModulesHelpers.js +0 -53
- package/lib/dependencies/ImportContextDependency.js +0 -10
- package/lib/dependencies/ImportDependenciesBlock.js +17 -17
- package/lib/dependencies/ImportEagerContextDependency.js +22 -22
- package/lib/dependencies/ImportLazyContextDependency.js +22 -22
- package/lib/dependencies/ImportLazyOnceContextDependency.js +22 -22
- package/lib/dependencies/ImportParserPlugin.js +89 -89
- package/lib/dependencies/ImportPlugin.js +60 -60
- package/lib/dependencies/ImportWeakContextDependency.js +22 -22
- package/lib/dependencies/LoaderDependency.js +18 -18
- package/lib/dependencies/LoaderPlugin.js +60 -60
- package/lib/dependencies/LocalModule.js +23 -23
- package/lib/dependencies/LocalModuleDependency.js +24 -24
- package/lib/dependencies/LocalModulesHelpers.js +46 -46
- package/lib/dependencies/ModuleDependency.js +23 -23
- package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
- package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
- package/lib/dependencies/MultiEntryDependency.js +20 -20
- package/lib/dependencies/NullDependency.js +24 -24
- package/lib/dependencies/PrefetchDependency.js +18 -18
- package/lib/dependencies/RequireContextDependency.js +26 -26
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +50 -50
- package/lib/dependencies/RequireContextPlugin.js +96 -96
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +22 -22
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +102 -102
- package/lib/dependencies/RequireEnsureDependency.js +38 -38
- package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
- package/lib/dependencies/RequireEnsurePlugin.js +40 -40
- package/lib/dependencies/RequireHeaderDependency.js +26 -26
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +21 -21
- package/lib/dependencies/RequireIncludePlugin.js +33 -33
- package/lib/dependencies/RequireResolveContextDependency.js +0 -10
- package/lib/dependencies/RequireResolveDependency.js +22 -22
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +71 -71
- package/lib/dependencies/RequireResolveHeaderDependency.js +26 -26
- package/lib/dependencies/SingleEntryDependency.js +18 -18
- package/lib/dependencies/SystemPlugin.js +44 -44
- package/lib/dependencies/UnsupportedDependency.js +23 -23
- package/lib/dependencies/WebpackMissingModule.js +18 -18
- package/lib/dependencies/getFunctionExpression.js +44 -44
- package/lib/formatLocation.js +54 -54
- package/lib/node/NodeChunkTemplatePlugin.js +27 -27
- package/lib/node/NodeEnvironmentPlugin.js +25 -25
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +27 -27
- package/lib/node/NodeMainTemplate.runtime.js +24 -24
- package/lib/node/NodeMainTemplateAsync.runtime.js +40 -40
- package/lib/node/NodeOutputFileSystem.js +22 -22
- package/lib/node/NodeSourcePlugin.js +88 -88
- package/lib/node/NodeTargetPlugin.js +15 -15
- package/lib/node/NodeTemplatePlugin.js +27 -27
- package/lib/node/NodeWatchFileSystem.js +72 -72
- package/lib/optimize/ChunkModuleIdRangePlugin.js +53 -53
- package/lib/optimize/CommonsChunkPlugin.js +40 -19
- package/lib/optimize/ConcatenatedModule.js +27 -24
- package/lib/optimize/DedupePlugin.js +15 -15
- package/lib/optimize/FlagIncludedChunksPlugin.js +35 -35
- package/lib/optimize/LimitChunkCountPlugin.js +59 -59
- package/lib/optimize/MinChunkSizePlugin.js +65 -65
- package/lib/optimize/RemoveEmptyChunksPlugin.js +21 -21
- package/lib/optimize/UglifyJsPlugin.js +9 -9
- package/lib/performance/AssetsOverSizeLimitWarning.js +23 -23
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +28 -28
- package/lib/performance/NoAsyncChunksWarning.js +20 -20
- package/lib/performance/SizeLimitsPlugin.js +102 -102
- package/lib/prepareOptions.js +29 -29
- package/lib/removeAndDo.js +15 -15
- package/lib/util/Queue.js +42 -0
- package/lib/util/Semaphore.js +32 -32
- package/lib/util/identifier.js +38 -38
- package/lib/validateSchema.js +66 -66
- package/lib/web/WebEnvironmentPlugin.js +18 -18
- package/lib/webpack.js +1 -0
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +29 -29
- package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +28 -28
- package/lib/webworker/WebWorkerMainTemplate.runtime.js +58 -58
- package/lib/webworker/WebWorkerTemplatePlugin.js +20 -20
- package/package.json +1 -1
- package/schemas/ajv.absolutePath.js +29 -29
- package/schemas/webpackOptionsSchema.json +69 -0
package/lib/DelegatedModule.js
CHANGED
@@ -1,92 +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 Module = require("./Module");
|
8
|
-
const OriginalSource = require("webpack-sources").OriginalSource;
|
9
|
-
const RawSource = require("webpack-sources").RawSource;
|
10
|
-
const WebpackMissingModule = require("./dependencies/WebpackMissingModule");
|
11
|
-
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
|
12
|
-
const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
|
13
|
-
|
14
|
-
class DelegatedModule extends Module {
|
15
|
-
constructor(sourceRequest, data, type, userRequest, originalRequest) {
|
16
|
-
super();
|
17
|
-
this.sourceRequest = sourceRequest;
|
18
|
-
this.request = data.id;
|
19
|
-
this.meta = data.meta;
|
20
|
-
this.type = type;
|
21
|
-
this.originalRequest = originalRequest;
|
22
|
-
this.userRequest = userRequest;
|
23
|
-
this.built = false;
|
24
|
-
this.delegated = true;
|
25
|
-
this.delegateData = data;
|
26
|
-
}
|
27
|
-
|
28
|
-
libIdent(options) {
|
29
|
-
return typeof this.originalRequest === "string" ? this.originalRequest : this.originalRequest.libIdent(options);
|
30
|
-
}
|
31
|
-
|
32
|
-
identifier() {
|
33
|
-
return `delegated ${JSON.stringify(this.request)} from ${this.sourceRequest}`;
|
34
|
-
}
|
35
|
-
|
36
|
-
readableIdentifier() {
|
37
|
-
return `delegated ${this.userRequest} from ${this.sourceRequest}`;
|
38
|
-
}
|
39
|
-
|
40
|
-
needRebuild() {
|
41
|
-
return false;
|
42
|
-
}
|
43
|
-
|
44
|
-
build(options, compilation, resolver, fs, callback) {
|
45
|
-
this.built = true;
|
46
|
-
this.builtTime = Date.now();
|
47
|
-
this.cacheable = true;
|
48
|
-
this.dependencies.length = 0;
|
49
|
-
this.addDependency(new DelegatedSourceDependency(this.sourceRequest));
|
50
|
-
this.addDependency(new DelegatedExportsDependency(this, this.delegateData.exports || true));
|
51
|
-
callback();
|
52
|
-
}
|
53
|
-
|
54
|
-
unbuild() {
|
55
|
-
this.built = false;
|
56
|
-
super.unbuild();
|
57
|
-
}
|
58
|
-
|
59
|
-
source() {
|
60
|
-
const sourceModule = this.dependencies[0].module;
|
61
|
-
let str;
|
62
|
-
|
63
|
-
if(!sourceModule) {
|
64
|
-
str = WebpackMissingModule.moduleCode(this.sourceRequest);
|
65
|
-
} else {
|
66
|
-
str = `module.exports = (__webpack_require__(${JSON.stringify(sourceModule.id)}))`;
|
67
|
-
|
68
|
-
switch(this.type) {
|
69
|
-
case "require":
|
70
|
-
str += `(${JSON.stringify(this.request)})`;
|
71
|
-
break;
|
72
|
-
case "object":
|
73
|
-
str += `[${JSON.stringify(this.request)}]`;
|
74
|
-
break;
|
75
|
-
}
|
76
|
-
|
77
|
-
str += ";";
|
78
|
-
}
|
79
|
-
|
80
|
-
if(this.useSourceMap) {
|
81
|
-
return new OriginalSource(str, this.identifier());
|
82
|
-
} else {
|
83
|
-
return new RawSource(str);
|
84
|
-
}
|
85
|
-
}
|
86
|
-
|
87
|
-
size() {
|
88
|
-
return 42;
|
89
|
-
}
|
90
|
-
|
91
|
-
|
92
|
-
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const Module = require("./Module");
|
8
|
+
const OriginalSource = require("webpack-sources").OriginalSource;
|
9
|
+
const RawSource = require("webpack-sources").RawSource;
|
10
|
+
const WebpackMissingModule = require("./dependencies/WebpackMissingModule");
|
11
|
+
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
|
12
|
+
const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
|
13
|
+
|
14
|
+
class DelegatedModule extends Module {
|
15
|
+
constructor(sourceRequest, data, type, userRequest, originalRequest) {
|
16
|
+
super();
|
17
|
+
this.sourceRequest = sourceRequest;
|
18
|
+
this.request = data.id;
|
19
|
+
this.meta = data.meta;
|
20
|
+
this.type = type;
|
21
|
+
this.originalRequest = originalRequest;
|
22
|
+
this.userRequest = userRequest;
|
23
|
+
this.built = false;
|
24
|
+
this.delegated = true;
|
25
|
+
this.delegateData = data;
|
26
|
+
}
|
27
|
+
|
28
|
+
libIdent(options) {
|
29
|
+
return typeof this.originalRequest === "string" ? this.originalRequest : this.originalRequest.libIdent(options);
|
30
|
+
}
|
31
|
+
|
32
|
+
identifier() {
|
33
|
+
return `delegated ${JSON.stringify(this.request)} from ${this.sourceRequest}`;
|
34
|
+
}
|
35
|
+
|
36
|
+
readableIdentifier() {
|
37
|
+
return `delegated ${this.userRequest} from ${this.sourceRequest}`;
|
38
|
+
}
|
39
|
+
|
40
|
+
needRebuild() {
|
41
|
+
return false;
|
42
|
+
}
|
43
|
+
|
44
|
+
build(options, compilation, resolver, fs, callback) {
|
45
|
+
this.built = true;
|
46
|
+
this.builtTime = Date.now();
|
47
|
+
this.cacheable = true;
|
48
|
+
this.dependencies.length = 0;
|
49
|
+
this.addDependency(new DelegatedSourceDependency(this.sourceRequest));
|
50
|
+
this.addDependency(new DelegatedExportsDependency(this, this.delegateData.exports || true));
|
51
|
+
callback();
|
52
|
+
}
|
53
|
+
|
54
|
+
unbuild() {
|
55
|
+
this.built = false;
|
56
|
+
super.unbuild();
|
57
|
+
}
|
58
|
+
|
59
|
+
source() {
|
60
|
+
const sourceModule = this.dependencies[0].module;
|
61
|
+
let str;
|
62
|
+
|
63
|
+
if(!sourceModule) {
|
64
|
+
str = WebpackMissingModule.moduleCode(this.sourceRequest);
|
65
|
+
} else {
|
66
|
+
str = `module.exports = (__webpack_require__(${JSON.stringify(sourceModule.id)}))`;
|
67
|
+
|
68
|
+
switch(this.type) {
|
69
|
+
case "require":
|
70
|
+
str += `(${JSON.stringify(this.request)})`;
|
71
|
+
break;
|
72
|
+
case "object":
|
73
|
+
str += `[${JSON.stringify(this.request)}]`;
|
74
|
+
break;
|
75
|
+
}
|
76
|
+
|
77
|
+
str += ";";
|
78
|
+
}
|
79
|
+
|
80
|
+
if(this.useSourceMap) {
|
81
|
+
return new OriginalSource(str, this.identifier());
|
82
|
+
} else {
|
83
|
+
return new RawSource(str);
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
size() {
|
88
|
+
return 42;
|
89
|
+
}
|
90
|
+
|
91
|
+
updateHash(hash) {
|
92
|
+
hash.update(this.type);
|
93
|
+
hash.update(JSON.stringify(this.request));
|
94
|
+
super.updateHash(hash);
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
module.exports = DelegatedModule;
|
@@ -1,59 +1,59 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const DelegatedModule = require("./DelegatedModule");
|
8
|
-
|
9
|
-
// options.source
|
10
|
-
// options.type
|
11
|
-
// options.context
|
12
|
-
// options.scope
|
13
|
-
// options.content
|
14
|
-
class DelegatedModuleFactoryPlugin {
|
15
|
-
constructor(options) {
|
16
|
-
this.options = options;
|
17
|
-
options.type = options.type || "require";
|
18
|
-
options.extensions = options.extensions || ["", ".js"];
|
19
|
-
}
|
20
|
-
|
21
|
-
apply(normalModuleFactory) {
|
22
|
-
const scope = this.options.scope;
|
23
|
-
if(scope) {
|
24
|
-
normalModuleFactory.plugin("factory", factory => (data, callback) => {
|
25
|
-
const dependency = data.dependencies[0];
|
26
|
-
const request = dependency.request;
|
27
|
-
if(request && request.indexOf(scope + "/") === 0) {
|
28
|
-
const innerRequest = "." + request.substr(scope.length);
|
29
|
-
let resolved;
|
30
|
-
if(innerRequest in this.options.content) {
|
31
|
-
resolved = this.options.content[innerRequest];
|
32
|
-
return callback(null, new DelegatedModule(this.options.source, resolved, this.options.type, innerRequest, request));
|
33
|
-
}
|
34
|
-
for(let i = 0; i < this.options.extensions.length; i++) {
|
35
|
-
const extension = this.options.extensions[i];
|
36
|
-
const requestPlusExt = innerRequest + extension;
|
37
|
-
if(requestPlusExt in this.options.content) {
|
38
|
-
resolved = this.options.content[requestPlusExt];
|
39
|
-
return callback(null, new DelegatedModule(this.options.source, resolved, this.options.type, requestPlusExt, request + extension));
|
40
|
-
}
|
41
|
-
}
|
42
|
-
}
|
43
|
-
return factory(data, callback);
|
44
|
-
});
|
45
|
-
} else {
|
46
|
-
normalModuleFactory.plugin("module", module => {
|
47
|
-
if(module.libIdent) {
|
48
|
-
const request = module.libIdent(this.options);
|
49
|
-
if(request && request in this.options.content) {
|
50
|
-
const resolved = this.options.content[request];
|
51
|
-
return new DelegatedModule(this.options.source, resolved, this.options.type, request, module);
|
52
|
-
}
|
53
|
-
}
|
54
|
-
return module;
|
55
|
-
});
|
56
|
-
}
|
57
|
-
}
|
58
|
-
}
|
59
|
-
module.exports = DelegatedModuleFactoryPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const DelegatedModule = require("./DelegatedModule");
|
8
|
+
|
9
|
+
// options.source
|
10
|
+
// options.type
|
11
|
+
// options.context
|
12
|
+
// options.scope
|
13
|
+
// options.content
|
14
|
+
class DelegatedModuleFactoryPlugin {
|
15
|
+
constructor(options) {
|
16
|
+
this.options = options;
|
17
|
+
options.type = options.type || "require";
|
18
|
+
options.extensions = options.extensions || ["", ".js"];
|
19
|
+
}
|
20
|
+
|
21
|
+
apply(normalModuleFactory) {
|
22
|
+
const scope = this.options.scope;
|
23
|
+
if(scope) {
|
24
|
+
normalModuleFactory.plugin("factory", factory => (data, callback) => {
|
25
|
+
const dependency = data.dependencies[0];
|
26
|
+
const request = dependency.request;
|
27
|
+
if(request && request.indexOf(scope + "/") === 0) {
|
28
|
+
const innerRequest = "." + request.substr(scope.length);
|
29
|
+
let resolved;
|
30
|
+
if(innerRequest in this.options.content) {
|
31
|
+
resolved = this.options.content[innerRequest];
|
32
|
+
return callback(null, new DelegatedModule(this.options.source, resolved, this.options.type, innerRequest, request));
|
33
|
+
}
|
34
|
+
for(let i = 0; i < this.options.extensions.length; i++) {
|
35
|
+
const extension = this.options.extensions[i];
|
36
|
+
const requestPlusExt = innerRequest + extension;
|
37
|
+
if(requestPlusExt in this.options.content) {
|
38
|
+
resolved = this.options.content[requestPlusExt];
|
39
|
+
return callback(null, new DelegatedModule(this.options.source, resolved, this.options.type, requestPlusExt, request + extension));
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
return factory(data, callback);
|
44
|
+
});
|
45
|
+
} else {
|
46
|
+
normalModuleFactory.plugin("module", module => {
|
47
|
+
if(module.libIdent) {
|
48
|
+
const request = module.libIdent(this.options);
|
49
|
+
if(request && request in this.options.content) {
|
50
|
+
const resolved = this.options.content[request];
|
51
|
+
return new DelegatedModule(this.options.source, resolved, this.options.type, request, module);
|
52
|
+
}
|
53
|
+
}
|
54
|
+
return module;
|
55
|
+
});
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
module.exports = DelegatedModuleFactoryPlugin;
|
package/lib/DelegatedPlugin.js
CHANGED
@@ -1,30 +1,30 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
|
6
|
-
"use strict";
|
7
|
-
|
8
|
-
const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
|
9
|
-
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
|
10
|
-
const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
|
11
|
-
const NullFactory = require("./NullFactory");
|
12
|
-
|
13
|
-
class DelegatedPlugin {
|
14
|
-
constructor(options) {
|
15
|
-
this.options = options;
|
16
|
-
}
|
17
|
-
|
18
|
-
apply(compiler) {
|
19
|
-
compiler.plugin("compilation", (compilation, params) => {
|
20
|
-
compilation.dependencyFactories.set(DelegatedSourceDependency, params.normalModuleFactory);
|
21
|
-
compilation.dependencyFactories.set(DelegatedExportsDependency, new NullFactory());
|
22
|
-
});
|
23
|
-
|
24
|
-
compiler.plugin("compile", (params) => {
|
25
|
-
params.normalModuleFactory.apply(new DelegatedModuleFactoryPlugin(this.options));
|
26
|
-
});
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
module.exports = DelegatedPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
|
9
|
+
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
|
10
|
+
const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
|
11
|
+
const NullFactory = require("./NullFactory");
|
12
|
+
|
13
|
+
class DelegatedPlugin {
|
14
|
+
constructor(options) {
|
15
|
+
this.options = options;
|
16
|
+
}
|
17
|
+
|
18
|
+
apply(compiler) {
|
19
|
+
compiler.plugin("compilation", (compilation, params) => {
|
20
|
+
compilation.dependencyFactories.set(DelegatedSourceDependency, params.normalModuleFactory);
|
21
|
+
compilation.dependencyFactories.set(DelegatedExportsDependency, new NullFactory());
|
22
|
+
});
|
23
|
+
|
24
|
+
compiler.plugin("compile", (params) => {
|
25
|
+
params.normalModuleFactory.apply(new DelegatedModuleFactoryPlugin(this.options));
|
26
|
+
});
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
module.exports = DelegatedPlugin;
|
@@ -1,51 +1,51 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const ReplaceSource = require("webpack-sources").ReplaceSource;
|
8
|
-
const RawSource = require("webpack-sources").RawSource;
|
9
|
-
|
10
|
-
class DependenciesBlockVariable {
|
11
|
-
constructor(name, expression, dependencies) {
|
12
|
-
this.name = name;
|
13
|
-
this.expression = expression;
|
14
|
-
this.dependencies = dependencies || [];
|
15
|
-
}
|
16
|
-
|
17
|
-
updateHash(hash) {
|
18
|
-
hash.update(this.name);
|
19
|
-
hash.update(this.expression);
|
20
|
-
this.dependencies.forEach(d => {
|
21
|
-
d.updateHash(hash);
|
22
|
-
});
|
23
|
-
}
|
24
|
-
|
25
|
-
expressionSource(dependencyTemplates, outputOptions, requestShortener) {
|
26
|
-
const source = new ReplaceSource(new RawSource(this.expression));
|
27
|
-
this.dependencies.forEach(dep => {
|
28
|
-
const template = dependencyTemplates.get(dep.constructor);
|
29
|
-
if(!template) throw new Error(`No template for dependency: ${dep.constructor.name}`);
|
30
|
-
template.apply(dep, source, outputOptions, requestShortener, dependencyTemplates);
|
31
|
-
});
|
32
|
-
return source;
|
33
|
-
}
|
34
|
-
|
35
|
-
disconnect() {
|
36
|
-
this.dependencies.forEach(d => {
|
37
|
-
d.disconnect();
|
38
|
-
});
|
39
|
-
}
|
40
|
-
|
41
|
-
hasDependencies(filter) {
|
42
|
-
if(filter) {
|
43
|
-
if(this.dependencies.some(filter)) return true;
|
44
|
-
} else {
|
45
|
-
if(this.dependencies.length > 0) return true;
|
46
|
-
}
|
47
|
-
return false;
|
48
|
-
}
|
49
|
-
}
|
50
|
-
|
51
|
-
module.exports = DependenciesBlockVariable;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const ReplaceSource = require("webpack-sources").ReplaceSource;
|
8
|
+
const RawSource = require("webpack-sources").RawSource;
|
9
|
+
|
10
|
+
class DependenciesBlockVariable {
|
11
|
+
constructor(name, expression, dependencies) {
|
12
|
+
this.name = name;
|
13
|
+
this.expression = expression;
|
14
|
+
this.dependencies = dependencies || [];
|
15
|
+
}
|
16
|
+
|
17
|
+
updateHash(hash) {
|
18
|
+
hash.update(this.name);
|
19
|
+
hash.update(this.expression);
|
20
|
+
this.dependencies.forEach(d => {
|
21
|
+
d.updateHash(hash);
|
22
|
+
});
|
23
|
+
}
|
24
|
+
|
25
|
+
expressionSource(dependencyTemplates, outputOptions, requestShortener) {
|
26
|
+
const source = new ReplaceSource(new RawSource(this.expression));
|
27
|
+
this.dependencies.forEach(dep => {
|
28
|
+
const template = dependencyTemplates.get(dep.constructor);
|
29
|
+
if(!template) throw new Error(`No template for dependency: ${dep.constructor.name}`);
|
30
|
+
template.apply(dep, source, outputOptions, requestShortener, dependencyTemplates);
|
31
|
+
});
|
32
|
+
return source;
|
33
|
+
}
|
34
|
+
|
35
|
+
disconnect() {
|
36
|
+
this.dependencies.forEach(d => {
|
37
|
+
d.disconnect();
|
38
|
+
});
|
39
|
+
}
|
40
|
+
|
41
|
+
hasDependencies(filter) {
|
42
|
+
if(filter) {
|
43
|
+
if(this.dependencies.some(filter)) return true;
|
44
|
+
} else {
|
45
|
+
if(this.dependencies.length > 0) return true;
|
46
|
+
}
|
47
|
+
return false;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
module.exports = DependenciesBlockVariable;
|
package/lib/DllEntryPlugin.js
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const DllEntryDependency = require("./dependencies/DllEntryDependency");
|
8
|
-
const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
|
9
|
-
const DllModuleFactory = require("./DllModuleFactory");
|
10
|
-
|
11
|
-
class DllEntryPlugin {
|
12
|
-
constructor(context, entries, name) {
|
13
|
-
this.context = context;
|
14
|
-
this.entries = entries;
|
15
|
-
this.name = name;
|
16
|
-
}
|
17
|
-
|
18
|
-
apply(compiler) {
|
19
|
-
compiler.plugin("compilation", (compilation, params) => {
|
20
|
-
const dllModuleFactory = new DllModuleFactory();
|
21
|
-
const normalModuleFactory = params.normalModuleFactory;
|
22
|
-
|
23
|
-
compilation.dependencyFactories.set(DllEntryDependency, dllModuleFactory);
|
24
|
-
|
25
|
-
compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
|
26
|
-
});
|
27
|
-
compiler.plugin("make", (compilation, callback) => {
|
28
|
-
compilation.addEntry(this.context, new DllEntryDependency(this.entries.map((e, idx) => {
|
29
|
-
const dep = new SingleEntryDependency(e);
|
30
|
-
dep.loc = `${this.name}:${idx}`;
|
31
|
-
return dep;
|
32
|
-
}), this.name), this.name, callback);
|
33
|
-
});
|
34
|
-
}
|
35
|
-
}
|
36
|
-
|
37
|
-
module.exports = DllEntryPlugin;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const DllEntryDependency = require("./dependencies/DllEntryDependency");
|
8
|
+
const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
|
9
|
+
const DllModuleFactory = require("./DllModuleFactory");
|
10
|
+
|
11
|
+
class DllEntryPlugin {
|
12
|
+
constructor(context, entries, name) {
|
13
|
+
this.context = context;
|
14
|
+
this.entries = entries;
|
15
|
+
this.name = name;
|
16
|
+
}
|
17
|
+
|
18
|
+
apply(compiler) {
|
19
|
+
compiler.plugin("compilation", (compilation, params) => {
|
20
|
+
const dllModuleFactory = new DllModuleFactory();
|
21
|
+
const normalModuleFactory = params.normalModuleFactory;
|
22
|
+
|
23
|
+
compilation.dependencyFactories.set(DllEntryDependency, dllModuleFactory);
|
24
|
+
|
25
|
+
compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
|
26
|
+
});
|
27
|
+
compiler.plugin("make", (compilation, callback) => {
|
28
|
+
compilation.addEntry(this.context, new DllEntryDependency(this.entries.map((e, idx) => {
|
29
|
+
const dep = new SingleEntryDependency(e);
|
30
|
+
dep.loc = `${this.name}:${idx}`;
|
31
|
+
return dep;
|
32
|
+
}), this.name), this.name, callback);
|
33
|
+
});
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
module.exports = DllEntryPlugin;
|
package/lib/DllModule.js
CHANGED
@@ -1,58 +1,58 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
"use strict";
|
6
|
-
|
7
|
-
const Module = require("./Module");
|
8
|
-
const RawSource = require("webpack-sources").RawSource;
|
9
|
-
|
10
|
-
class DllModule extends Module {
|
11
|
-
constructor(context, dependencies, name, type) {
|
12
|
-
super();
|
13
|
-
this.context = context;
|
14
|
-
this.dependencies = dependencies;
|
15
|
-
this.name = name;
|
16
|
-
this.built = false;
|
17
|
-
this.cacheable = true;
|
18
|
-
this.type = type;
|
19
|
-
}
|
20
|
-
|
21
|
-
identifier() {
|
22
|
-
return `dll ${this.name}`;
|
23
|
-
}
|
24
|
-
|
25
|
-
readableIdentifier() {
|
26
|
-
return `dll ${this.name}`;
|
27
|
-
}
|
28
|
-
|
29
|
-
disconnect() {
|
30
|
-
this.built = false;
|
31
|
-
super.disconnect();
|
32
|
-
}
|
33
|
-
|
34
|
-
build(options, compilation, resolver, fs, callback) {
|
35
|
-
this.built = true;
|
36
|
-
return callback();
|
37
|
-
}
|
38
|
-
|
39
|
-
source() {
|
40
|
-
return new RawSource("module.exports = __webpack_require__;");
|
41
|
-
}
|
42
|
-
|
43
|
-
needRebuild() {
|
44
|
-
return false;
|
45
|
-
}
|
46
|
-
|
47
|
-
size() {
|
48
|
-
return 12;
|
49
|
-
}
|
50
|
-
|
51
|
-
updateHash(hash) {
|
52
|
-
hash.update("dll module");
|
53
|
-
hash.update(this.name || "");
|
54
|
-
super.updateHash(hash);
|
55
|
-
}
|
56
|
-
}
|
57
|
-
|
58
|
-
module.exports = DllModule;
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
const Module = require("./Module");
|
8
|
+
const RawSource = require("webpack-sources").RawSource;
|
9
|
+
|
10
|
+
class DllModule extends Module {
|
11
|
+
constructor(context, dependencies, name, type) {
|
12
|
+
super();
|
13
|
+
this.context = context;
|
14
|
+
this.dependencies = dependencies;
|
15
|
+
this.name = name;
|
16
|
+
this.built = false;
|
17
|
+
this.cacheable = true;
|
18
|
+
this.type = type;
|
19
|
+
}
|
20
|
+
|
21
|
+
identifier() {
|
22
|
+
return `dll ${this.name}`;
|
23
|
+
}
|
24
|
+
|
25
|
+
readableIdentifier() {
|
26
|
+
return `dll ${this.name}`;
|
27
|
+
}
|
28
|
+
|
29
|
+
disconnect() {
|
30
|
+
this.built = false;
|
31
|
+
super.disconnect();
|
32
|
+
}
|
33
|
+
|
34
|
+
build(options, compilation, resolver, fs, callback) {
|
35
|
+
this.built = true;
|
36
|
+
return callback();
|
37
|
+
}
|
38
|
+
|
39
|
+
source() {
|
40
|
+
return new RawSource("module.exports = __webpack_require__;");
|
41
|
+
}
|
42
|
+
|
43
|
+
needRebuild() {
|
44
|
+
return false;
|
45
|
+
}
|
46
|
+
|
47
|
+
size() {
|
48
|
+
return 12;
|
49
|
+
}
|
50
|
+
|
51
|
+
updateHash(hash) {
|
52
|
+
hash.update("dll module");
|
53
|
+
hash.update(this.name || "");
|
54
|
+
super.updateHash(hash);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
module.exports = DllModule;
|