webpack 1.13.3 → 1.14.0
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 +22 -22
- package/README.md +310 -310
- package/buildin/amd-define.js +1 -1
- package/buildin/amd-options.js +1 -1
- package/buildin/module.js +10 -10
- package/hot/dev-server.js +63 -63
- package/hot/log-apply-result.js +25 -25
- package/hot/only-dev-server.js +77 -77
- package/hot/poll.js +37 -37
- package/hot/signal.js +65 -65
- package/lib/APIPlugin.js +49 -49
- package/lib/AbstractPlugin.js +22 -22
- package/lib/AmdMainTemplatePlugin.js +43 -43
- package/lib/ArrayMap.js +50 -50
- package/lib/AsyncDependenciesBlock.js +39 -39
- package/lib/AutomaticPrefetchPlugin.js +35 -35
- package/lib/BannerPlugin.js +34 -34
- package/lib/BasicEvaluatedExpression.js +140 -140
- package/lib/CachePlugin.js +43 -43
- package/lib/CaseSensitiveModulesWarning.js +16 -16
- package/lib/Chunk.js +252 -252
- package/lib/ChunkRenderError.js +17 -17
- package/lib/ChunkTemplate.js +37 -37
- package/lib/CompatibilityPlugin.js +42 -42
- package/lib/Compilation.js +891 -891
- package/lib/Compiler.js +407 -407
- package/lib/ConcatSource.js +5 -5
- package/lib/ConstPlugin.js +54 -54
- package/lib/ContextModule.js +130 -130
- package/lib/ContextModuleFactory.js +132 -132
- package/lib/ContextReplacementPlugin.js +93 -93
- package/lib/CriticalDependenciesWarning.js +24 -24
- package/lib/DefinePlugin.js +126 -126
- package/lib/DelegatedModule.js +69 -69
- package/lib/DelegatedModuleFactoryPlugin.js +51 -51
- package/lib/DelegatedPlugin.js +21 -21
- package/lib/DependenciesBlock.js +57 -57
- package/lib/DependenciesBlockVariable.js +41 -41
- package/lib/Dependency.js +54 -54
- package/lib/DllEntryPlugin.js +32 -32
- package/lib/DllModule.js +55 -55
- package/lib/DllModuleFactory.js +18 -18
- package/lib/DllPlugin.js +30 -30
- package/lib/DllReferencePlugin.js +26 -26
- package/lib/EntryModuleNotFoundError.js +15 -15
- package/lib/EntryOptionPlugin.js +28 -28
- package/lib/EnvironmentPlugin.js +28 -28
- package/lib/EvalDevToolModulePlugin.js +17 -17
- package/lib/EvalDevToolModuleTemplatePlugin.js +29 -29
- package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +68 -68
- package/lib/EvalSourceMapDevToolPlugin.js +25 -25
- package/lib/ExtendedAPIPlugin.js +45 -45
- package/lib/ExternalModule.js +89 -89
- package/lib/ExternalModuleFactoryPlugin.js +86 -86
- package/lib/ExternalsPlugin.js +16 -16
- package/lib/FunctionModulePlugin.js +18 -18
- package/lib/FunctionModuleTemplatePlugin.js +39 -39
- package/lib/HotModuleReplacement.runtime.js +486 -486
- package/lib/HotModuleReplacementPlugin.js +223 -223
- package/lib/HotUpdateChunkTemplate.js +28 -28
- package/lib/IgnorePlugin.js +32 -32
- package/lib/JsonpChunkTemplatePlugin.js +26 -26
- package/lib/JsonpExportMainTemplatePlugin.js +28 -28
- package/lib/JsonpHotUpdateChunkTemplatePlugin.js +26 -26
- package/lib/JsonpMainTemplate.runtime.js +56 -56
- package/lib/JsonpMainTemplatePlugin.js +162 -162
- package/lib/JsonpTemplatePlugin.js +17 -17
- package/lib/LibManifestPlugin.js +49 -49
- package/lib/LibraryTemplatePlugin.js +77 -77
- package/lib/LoaderTargetPlugin.js +16 -16
- package/lib/MainTemplate.js +169 -169
- package/lib/MemoryOutputFileSystem.js +5 -5
- package/lib/Module.js +116 -116
- package/lib/ModuleFilenameHelpers.js +157 -157
- package/lib/ModuleNotFoundError.js +17 -17
- package/lib/ModuleParseError.js +26 -26
- package/lib/ModuleParserHelpers.js +21 -21
- package/lib/ModuleReason.js +9 -9
- package/lib/ModuleTemplate.js +23 -23
- package/lib/MovedToPluginWarningPlugin.js +17 -17
- package/lib/MultiCompiler.js +166 -166
- package/lib/MultiEntryPlugin.js +31 -31
- package/lib/MultiModule.js +71 -71
- package/lib/MultiModuleFactory.js +18 -18
- package/lib/NamedModulesPlugin.js +21 -21
- package/lib/NewWatchingPlugin.js +12 -12
- package/lib/NoErrorsPlugin.js +18 -18
- package/lib/NodeStuffPlugin.js +99 -99
- package/lib/NormalModule.js +322 -322
- package/lib/NormalModuleFactory.js +171 -171
- package/lib/NormalModuleReplacementPlugin.js +40 -40
- package/lib/NullFactory.js +10 -10
- package/lib/OldWatchingPlugin.js +14 -14
- package/lib/OptionsApply.js +10 -10
- package/lib/OriginalSource.js +5 -5
- package/lib/Parser.js +938 -938
- package/lib/PrefetchPlugin.js +25 -25
- package/lib/ProgressPlugin.js +80 -80
- package/lib/ProvidePlugin.js +48 -48
- package/lib/RawModule.js +65 -65
- package/lib/RawSource.js +5 -5
- package/lib/RecordIdsPlugin.js +130 -130
- package/lib/RequestShortener.js +56 -56
- package/lib/RequireJsStuffPlugin.js +38 -38
- package/lib/ResolverPlugin.js +34 -34
- package/lib/SetVarMainTemplatePlugin.js +36 -36
- package/lib/SingleEntryPlugin.js +24 -24
- package/lib/Source.js +5 -5
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +33 -33
- package/lib/SourceMapDevToolPlugin.js +168 -168
- package/lib/SourceMapSource.js +5 -5
- package/lib/Stats.js +732 -732
- package/lib/Template.js +119 -119
- package/lib/TemplatedPathPlugin.js +111 -111
- package/lib/UmdMainTemplatePlugin.js +146 -146
- package/lib/UnsupportedFeatureWarning.js +14 -14
- package/lib/WarnCaseSensitiveModulesPlugin.js +27 -27
- package/lib/WatchIgnorePlugin.js +45 -45
- package/lib/WebpackOptionsApply.js +376 -376
- package/lib/WebpackOptionsDefaulter.js +112 -112
- package/lib/dependencies/AMDDefineDependency.js +63 -63
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +240 -240
- package/lib/dependencies/AMDPlugin.js +115 -115
- package/lib/dependencies/AMDRequireArrayDependency.js +34 -34
- package/lib/dependencies/AMDRequireContextDependency.js +18 -18
- package/lib/dependencies/AMDRequireDependenciesBlock.js +25 -25
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +145 -145
- package/lib/dependencies/AMDRequireDependency.js +64 -64
- package/lib/dependencies/AMDRequireItemDependency.js +17 -17
- package/lib/dependencies/CommonJsPlugin.js +93 -93
- package/lib/dependencies/CommonJsRequireContextDependency.js +18 -18
- package/lib/dependencies/CommonJsRequireDependency.js +17 -17
- package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +91 -91
- package/lib/dependencies/ConstDependency.js +29 -29
- package/lib/dependencies/ContextDependency.js +24 -24
- package/lib/dependencies/ContextDependencyHelpers.js +34 -34
- package/lib/dependencies/ContextDependencyTemplateAsId.js +22 -22
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +31 -31
- package/lib/dependencies/ContextElementDependency.js +17 -17
- package/lib/dependencies/DelegatedSourceDependency.js +14 -14
- package/lib/dependencies/DepBlockHelpers.js +41 -41
- package/lib/dependencies/DllEntryDependency.js +17 -17
- package/lib/dependencies/LabeledExportsDependency.js +21 -21
- package/lib/dependencies/LabeledModuleDependency.js +36 -36
- package/lib/dependencies/LabeledModuleDependencyParserPlugin.js +76 -76
- package/lib/dependencies/LabeledModulesPlugin.js +26 -26
- package/lib/dependencies/LoaderDependency.js +14 -14
- package/lib/dependencies/LoaderPlugin.js +61 -61
- package/lib/dependencies/LocalModule.js +19 -19
- package/lib/dependencies/LocalModuleDependency.js +23 -23
- package/lib/dependencies/LocalModulesHelpers.js +43 -43
- package/lib/dependencies/ModuleDependency.js +20 -20
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +22 -22
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +22 -22
- package/lib/dependencies/ModuleHotAcceptDependency.js +18 -18
- package/lib/dependencies/ModuleHotDeclineDependency.js +18 -18
- package/lib/dependencies/MultiEntryDependency.js +16 -16
- package/lib/dependencies/NullDependency.js +17 -17
- package/lib/dependencies/NullDependencyTemplate.js +8 -8
- package/lib/dependencies/PrefetchDependency.js +14 -14
- package/lib/dependencies/RequireContextDependency.js +17 -17
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +33 -33
- package/lib/dependencies/RequireContextPlugin.js +64 -64
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +20 -20
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +66 -66
- package/lib/dependencies/RequireEnsureDependency.js +29 -29
- package/lib/dependencies/RequireEnsureItemDependency.js +16 -16
- package/lib/dependencies/RequireEnsurePlugin.js +38 -38
- package/lib/dependencies/RequireHeaderDependency.js +25 -25
- package/lib/dependencies/RequireIncludeDependency.js +25 -25
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +18 -18
- package/lib/dependencies/RequireIncludePlugin.js +31 -31
- package/lib/dependencies/RequireResolveContextDependency.js +18 -18
- package/lib/dependencies/RequireResolveDependency.js +17 -17
- package/lib/dependencies/RequireResolveDependencyParserPlugin.js +69 -69
- package/lib/dependencies/RequireResolveHeaderDependency.js +25 -25
- package/lib/dependencies/SingleEntryDependency.js +14 -14
- package/lib/dependencies/TemplateArgumentDependency.js +26 -26
- package/lib/dependencies/WebpackMissingModule.js +23 -23
- package/lib/dependencies/getFunctionExpression.js +43 -43
- package/lib/node/NodeChunkTemplatePlugin.js +22 -22
- package/lib/node/NodeEnvironmentPlugin.js +25 -25
- package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +24 -24
- package/lib/node/NodeMainTemplate.runtime.js +20 -20
- package/lib/node/NodeMainTemplateAsync.runtime.js +34 -34
- package/lib/node/NodeMainTemplatePlugin.js +164 -164
- package/lib/node/NodeOutputFileSystem.js +17 -17
- package/lib/node/NodeSourcePlugin.js +85 -75
- package/lib/node/NodeTargetPlugin.js +12 -12
- package/lib/node/NodeTemplatePlugin.js +21 -21
- package/lib/node/NodeWatchFileSystem.js +65 -65
- package/lib/node/OldNodeWatchFileSystem.js +265 -265
- package/lib/optimize/AggressiveMergingPlugin.js +115 -115
- package/lib/optimize/CommonsChunkPlugin.js +178 -178
- package/lib/optimize/DedupePlugin.js +227 -227
- package/lib/optimize/FlagIncludedChunksPlugin.js +24 -24
- package/lib/optimize/LimitChunkCountPlugin.js +55 -55
- package/lib/optimize/MergeDuplicateChunksPlugin.js +30 -30
- package/lib/optimize/MinChunkSizePlugin.js +61 -61
- package/lib/optimize/OccurenceOrderPlugin.js +5 -5
- package/lib/optimize/OccurrenceOrderPlugin.js +91 -91
- package/lib/optimize/RemoveEmptyChunksPlugin.js +19 -19
- package/lib/optimize/RemoveParentModulesPlugin.js +50 -50
- package/lib/optimize/UglifyJsPlugin.js +146 -146
- package/lib/removeAndDo.js +13 -13
- package/lib/web/WebEnvironmentPlugin.js +16 -16
- package/lib/webpack.js +113 -113
- package/lib/webpack.web.js +27 -27
- package/lib/webworker/WebWorkerChunkTemplatePlugin.js +26 -26
- package/lib/webworker/WebWorkerMainTemplatePlugin.js +78 -78
- package/lib/webworker/WebWorkerTemplatePlugin.js +15 -15
- package/package.json +4 -4
package/lib/ConcatSource.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
module.exports = require("webpack-core/lib/ConcatSource");
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
module.exports = require("webpack-core/lib/ConcatSource");
|
package/lib/ConstPlugin.js
CHANGED
@@ -1,54 +1,54 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
var ConstDependency = require("./dependencies/ConstDependency");
|
6
|
-
var BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
|
7
|
-
|
8
|
-
var NullFactory = require("./NullFactory");
|
9
|
-
|
10
|
-
function ConstPlugin() {}
|
11
|
-
module.exports = ConstPlugin;
|
12
|
-
|
13
|
-
ConstPlugin.prototype.apply = function(compiler) {
|
14
|
-
compiler.plugin("compilation", function(compilation) {
|
15
|
-
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
|
16
|
-
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
|
17
|
-
});
|
18
|
-
compiler.parser.plugin("statement if", function(statement) {
|
19
|
-
var param = this.evaluateExpression(statement.test);
|
20
|
-
var bool = param.asBool();
|
21
|
-
if(typeof bool === "boolean") {
|
22
|
-
if(statement.test.type !== "Literal") {
|
23
|
-
var dep = new ConstDependency(bool + "", param.range);
|
24
|
-
dep.loc = statement.loc;
|
25
|
-
this.state.current.addDependency(dep);
|
26
|
-
}
|
27
|
-
return bool;
|
28
|
-
}
|
29
|
-
});
|
30
|
-
compiler.parser.plugin("expression ?:", function(expression) {
|
31
|
-
var param = this.evaluateExpression(expression.test);
|
32
|
-
var bool = param.asBool();
|
33
|
-
if(typeof bool === "boolean") {
|
34
|
-
if(expression.test.type !== "Literal") {
|
35
|
-
var dep = new ConstDependency(" " + bool + "", param.range);
|
36
|
-
dep.loc = expression.loc;
|
37
|
-
this.state.current.addDependency(dep);
|
38
|
-
}
|
39
|
-
return bool;
|
40
|
-
}
|
41
|
-
});
|
42
|
-
compiler.parser.plugin("evaluate Identifier __resourceQuery", function(expr) {
|
43
|
-
if(!this.state.module) return;
|
44
|
-
var res = new BasicEvaluatedExpression();
|
45
|
-
res.setString(this.state.module.splitQuery(this.state.module.resource)[1]);
|
46
|
-
res.setRange(expr.range);
|
47
|
-
return res;
|
48
|
-
});
|
49
|
-
compiler.parser.plugin("expression __resourceQuery", function() {
|
50
|
-
if(!this.state.module) return;
|
51
|
-
this.state.current.addVariable("__resourceQuery", JSON.stringify(this.state.module.splitQuery(this.state.module.resource)[1]));
|
52
|
-
return true;
|
53
|
-
});
|
54
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
var ConstDependency = require("./dependencies/ConstDependency");
|
6
|
+
var BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
|
7
|
+
|
8
|
+
var NullFactory = require("./NullFactory");
|
9
|
+
|
10
|
+
function ConstPlugin() {}
|
11
|
+
module.exports = ConstPlugin;
|
12
|
+
|
13
|
+
ConstPlugin.prototype.apply = function(compiler) {
|
14
|
+
compiler.plugin("compilation", function(compilation) {
|
15
|
+
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
|
16
|
+
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
|
17
|
+
});
|
18
|
+
compiler.parser.plugin("statement if", function(statement) {
|
19
|
+
var param = this.evaluateExpression(statement.test);
|
20
|
+
var bool = param.asBool();
|
21
|
+
if(typeof bool === "boolean") {
|
22
|
+
if(statement.test.type !== "Literal") {
|
23
|
+
var dep = new ConstDependency(bool + "", param.range);
|
24
|
+
dep.loc = statement.loc;
|
25
|
+
this.state.current.addDependency(dep);
|
26
|
+
}
|
27
|
+
return bool;
|
28
|
+
}
|
29
|
+
});
|
30
|
+
compiler.parser.plugin("expression ?:", function(expression) {
|
31
|
+
var param = this.evaluateExpression(expression.test);
|
32
|
+
var bool = param.asBool();
|
33
|
+
if(typeof bool === "boolean") {
|
34
|
+
if(expression.test.type !== "Literal") {
|
35
|
+
var dep = new ConstDependency(" " + bool + "", param.range);
|
36
|
+
dep.loc = expression.loc;
|
37
|
+
this.state.current.addDependency(dep);
|
38
|
+
}
|
39
|
+
return bool;
|
40
|
+
}
|
41
|
+
});
|
42
|
+
compiler.parser.plugin("evaluate Identifier __resourceQuery", function(expr) {
|
43
|
+
if(!this.state.module) return;
|
44
|
+
var res = new BasicEvaluatedExpression();
|
45
|
+
res.setString(this.state.module.splitQuery(this.state.module.resource)[1]);
|
46
|
+
res.setRange(expr.range);
|
47
|
+
return res;
|
48
|
+
});
|
49
|
+
compiler.parser.plugin("expression __resourceQuery", function() {
|
50
|
+
if(!this.state.module) return;
|
51
|
+
this.state.current.addVariable("__resourceQuery", JSON.stringify(this.state.module.splitQuery(this.state.module.resource)[1]));
|
52
|
+
return true;
|
53
|
+
});
|
54
|
+
};
|
package/lib/ContextModule.js
CHANGED
@@ -1,130 +1,130 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
var Module = require("./Module");
|
6
|
-
var OriginalSource = require("webpack-core/lib/OriginalSource");
|
7
|
-
var RawSource = require("webpack-core/lib/RawSource");
|
8
|
-
|
9
|
-
function ContextModule(resolveDependencies, context, recursive, regExp, addon) {
|
10
|
-
Module.call(this);
|
11
|
-
this.resolveDependencies = resolveDependencies;
|
12
|
-
this.context = context;
|
13
|
-
this.recursive = recursive;
|
14
|
-
this.regExp = regExp;
|
15
|
-
this.addon = addon;
|
16
|
-
this.cacheable = true;
|
17
|
-
this.contextDependencies = [context];
|
18
|
-
this.built = false;
|
19
|
-
}
|
20
|
-
module.exports = ContextModule;
|
21
|
-
|
22
|
-
ContextModule.prototype = Object.create(Module.prototype);
|
23
|
-
|
24
|
-
ContextModule.prototype.identifier = function() {
|
25
|
-
var identifier = "";
|
26
|
-
identifier += this.context + " ";
|
27
|
-
if(!this.recursive)
|
28
|
-
identifier += "nonrecursive ";
|
29
|
-
if(this.addon)
|
30
|
-
identifier += this.addon;
|
31
|
-
if(this.regExp)
|
32
|
-
identifier += this.regExp;
|
33
|
-
return identifier.replace(/ $/, "");
|
34
|
-
};
|
35
|
-
|
36
|
-
function prettyRegExp(str) {
|
37
|
-
return str.substring(1, str.length - 1);
|
38
|
-
}
|
39
|
-
|
40
|
-
ContextModule.prototype.readableIdentifier = function(requestShortener) {
|
41
|
-
var identifier = "";
|
42
|
-
identifier += requestShortener.shorten(this.context) + " ";
|
43
|
-
if(!this.recursive)
|
44
|
-
identifier += "nonrecursive ";
|
45
|
-
if(this.addon)
|
46
|
-
identifier += requestShortener.shorten(this.addon);
|
47
|
-
if(this.regExp)
|
48
|
-
identifier += prettyRegExp(this.regExp + "");
|
49
|
-
return identifier.replace(/ $/, "");
|
50
|
-
};
|
51
|
-
|
52
|
-
ContextModule.prototype.needRebuild = function(fileTimestamps, contextTimestamps) {
|
53
|
-
var ts = contextTimestamps[this.context];
|
54
|
-
if(!ts) return true;
|
55
|
-
return ts >= this.builtTime;
|
56
|
-
};
|
57
|
-
|
58
|
-
ContextModule.prototype.disconnect = function disconnect() {
|
59
|
-
this.built = false;
|
60
|
-
Module.prototype.disconnect.call(this);
|
61
|
-
};
|
62
|
-
|
63
|
-
ContextModule.prototype.build = function(options, compilation, resolver, fs, callback) {
|
64
|
-
this.built = true;
|
65
|
-
this.builtTime = new Date().getTime();
|
66
|
-
var addon = this.addon;
|
67
|
-
this.resolveDependencies(fs, this.context, this.recursive, this.regExp, function(err, dependencies) {
|
68
|
-
if(err) return callback(err);
|
69
|
-
if(dependencies) {
|
70
|
-
dependencies.forEach(function(dep) {
|
71
|
-
dep.loc = dep.userRequest;
|
72
|
-
dep.request = addon + dep.request;
|
73
|
-
});
|
74
|
-
}
|
75
|
-
this.dependencies = dependencies;
|
76
|
-
callback();
|
77
|
-
}.bind(this));
|
78
|
-
};
|
79
|
-
|
80
|
-
ContextModule.prototype.source = function() {
|
81
|
-
var str;
|
82
|
-
if(this.dependencies && this.dependencies.length > 0) {
|
83
|
-
var map = {};
|
84
|
-
this.dependencies.slice().sort(function(a, b) {
|
85
|
-
if(a.userRequest === b.userRequest) return 0;
|
86
|
-
return a.userRequest < b.userRequest ? -1 : 1;
|
87
|
-
}).forEach(function(dep) {
|
88
|
-
if(dep.module)
|
89
|
-
map[dep.userRequest] = dep.module.id;
|
90
|
-
});
|
91
|
-
str = [
|
92
|
-
"var map = ", JSON.stringify(map, null, "\t"), ";\n",
|
93
|
-
"function webpackContext(req) {\n",
|
94
|
-
"\treturn __webpack_require__(webpackContextResolve(req));\n",
|
95
|
-
"};\n",
|
96
|
-
"function webpackContextResolve(req) {\n",
|
97
|
-
"\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n",
|
98
|
-
"};\n",
|
99
|
-
"webpackContext.keys = function webpackContextKeys() {\n",
|
100
|
-
"\treturn Object.keys(map);\n",
|
101
|
-
"};\n",
|
102
|
-
"webpackContext.resolve = webpackContextResolve;\n",
|
103
|
-
"module.exports = webpackContext;\n",
|
104
|
-
"webpackContext.id = " + this.id + ";\n"
|
105
|
-
];
|
106
|
-
} else {
|
107
|
-
str = [
|
108
|
-
"function webpackContext(req) {\n",
|
109
|
-
"\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n",
|
110
|
-
"}\n",
|
111
|
-
"webpackContext.keys = function() { return []; };\n",
|
112
|
-
"webpackContext.resolve = webpackContext;\n",
|
113
|
-
"module.exports = webpackContext;\n",
|
114
|
-
"webpackContext.id = " + this.id + ";\n"
|
115
|
-
];
|
116
|
-
}
|
117
|
-
if(this.useSourceMap) {
|
118
|
-
return new OriginalSource(str.join(""), this.identifier());
|
119
|
-
} else {
|
120
|
-
return new RawSource(str.join(""));
|
121
|
-
}
|
122
|
-
};
|
123
|
-
|
124
|
-
ContextModule.prototype.size = function() {
|
125
|
-
return this.dependencies.map(function(dep) {
|
126
|
-
return dep.userRequest.length + 5;
|
127
|
-
}).reduce(function(a, b) {
|
128
|
-
return a + b;
|
129
|
-
}, 160);
|
130
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
var Module = require("./Module");
|
6
|
+
var OriginalSource = require("webpack-core/lib/OriginalSource");
|
7
|
+
var RawSource = require("webpack-core/lib/RawSource");
|
8
|
+
|
9
|
+
function ContextModule(resolveDependencies, context, recursive, regExp, addon) {
|
10
|
+
Module.call(this);
|
11
|
+
this.resolveDependencies = resolveDependencies;
|
12
|
+
this.context = context;
|
13
|
+
this.recursive = recursive;
|
14
|
+
this.regExp = regExp;
|
15
|
+
this.addon = addon;
|
16
|
+
this.cacheable = true;
|
17
|
+
this.contextDependencies = [context];
|
18
|
+
this.built = false;
|
19
|
+
}
|
20
|
+
module.exports = ContextModule;
|
21
|
+
|
22
|
+
ContextModule.prototype = Object.create(Module.prototype);
|
23
|
+
|
24
|
+
ContextModule.prototype.identifier = function() {
|
25
|
+
var identifier = "";
|
26
|
+
identifier += this.context + " ";
|
27
|
+
if(!this.recursive)
|
28
|
+
identifier += "nonrecursive ";
|
29
|
+
if(this.addon)
|
30
|
+
identifier += this.addon;
|
31
|
+
if(this.regExp)
|
32
|
+
identifier += this.regExp;
|
33
|
+
return identifier.replace(/ $/, "");
|
34
|
+
};
|
35
|
+
|
36
|
+
function prettyRegExp(str) {
|
37
|
+
return str.substring(1, str.length - 1);
|
38
|
+
}
|
39
|
+
|
40
|
+
ContextModule.prototype.readableIdentifier = function(requestShortener) {
|
41
|
+
var identifier = "";
|
42
|
+
identifier += requestShortener.shorten(this.context) + " ";
|
43
|
+
if(!this.recursive)
|
44
|
+
identifier += "nonrecursive ";
|
45
|
+
if(this.addon)
|
46
|
+
identifier += requestShortener.shorten(this.addon);
|
47
|
+
if(this.regExp)
|
48
|
+
identifier += prettyRegExp(this.regExp + "");
|
49
|
+
return identifier.replace(/ $/, "");
|
50
|
+
};
|
51
|
+
|
52
|
+
ContextModule.prototype.needRebuild = function(fileTimestamps, contextTimestamps) {
|
53
|
+
var ts = contextTimestamps[this.context];
|
54
|
+
if(!ts) return true;
|
55
|
+
return ts >= this.builtTime;
|
56
|
+
};
|
57
|
+
|
58
|
+
ContextModule.prototype.disconnect = function disconnect() {
|
59
|
+
this.built = false;
|
60
|
+
Module.prototype.disconnect.call(this);
|
61
|
+
};
|
62
|
+
|
63
|
+
ContextModule.prototype.build = function(options, compilation, resolver, fs, callback) {
|
64
|
+
this.built = true;
|
65
|
+
this.builtTime = new Date().getTime();
|
66
|
+
var addon = this.addon;
|
67
|
+
this.resolveDependencies(fs, this.context, this.recursive, this.regExp, function(err, dependencies) {
|
68
|
+
if(err) return callback(err);
|
69
|
+
if(dependencies) {
|
70
|
+
dependencies.forEach(function(dep) {
|
71
|
+
dep.loc = dep.userRequest;
|
72
|
+
dep.request = addon + dep.request;
|
73
|
+
});
|
74
|
+
}
|
75
|
+
this.dependencies = dependencies;
|
76
|
+
callback();
|
77
|
+
}.bind(this));
|
78
|
+
};
|
79
|
+
|
80
|
+
ContextModule.prototype.source = function() {
|
81
|
+
var str;
|
82
|
+
if(this.dependencies && this.dependencies.length > 0) {
|
83
|
+
var map = {};
|
84
|
+
this.dependencies.slice().sort(function(a, b) {
|
85
|
+
if(a.userRequest === b.userRequest) return 0;
|
86
|
+
return a.userRequest < b.userRequest ? -1 : 1;
|
87
|
+
}).forEach(function(dep) {
|
88
|
+
if(dep.module)
|
89
|
+
map[dep.userRequest] = dep.module.id;
|
90
|
+
});
|
91
|
+
str = [
|
92
|
+
"var map = ", JSON.stringify(map, null, "\t"), ";\n",
|
93
|
+
"function webpackContext(req) {\n",
|
94
|
+
"\treturn __webpack_require__(webpackContextResolve(req));\n",
|
95
|
+
"};\n",
|
96
|
+
"function webpackContextResolve(req) {\n",
|
97
|
+
"\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n",
|
98
|
+
"};\n",
|
99
|
+
"webpackContext.keys = function webpackContextKeys() {\n",
|
100
|
+
"\treturn Object.keys(map);\n",
|
101
|
+
"};\n",
|
102
|
+
"webpackContext.resolve = webpackContextResolve;\n",
|
103
|
+
"module.exports = webpackContext;\n",
|
104
|
+
"webpackContext.id = " + this.id + ";\n"
|
105
|
+
];
|
106
|
+
} else {
|
107
|
+
str = [
|
108
|
+
"function webpackContext(req) {\n",
|
109
|
+
"\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n",
|
110
|
+
"}\n",
|
111
|
+
"webpackContext.keys = function() { return []; };\n",
|
112
|
+
"webpackContext.resolve = webpackContext;\n",
|
113
|
+
"module.exports = webpackContext;\n",
|
114
|
+
"webpackContext.id = " + this.id + ";\n"
|
115
|
+
];
|
116
|
+
}
|
117
|
+
if(this.useSourceMap) {
|
118
|
+
return new OriginalSource(str.join(""), this.identifier());
|
119
|
+
} else {
|
120
|
+
return new RawSource(str.join(""));
|
121
|
+
}
|
122
|
+
};
|
123
|
+
|
124
|
+
ContextModule.prototype.size = function() {
|
125
|
+
return this.dependencies.map(function(dep) {
|
126
|
+
return dep.userRequest.length + 5;
|
127
|
+
}).reduce(function(a, b) {
|
128
|
+
return a + b;
|
129
|
+
}, 160);
|
130
|
+
};
|
@@ -1,132 +1,132 @@
|
|
1
|
-
/*
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
-
Author Tobias Koppers @sokra
|
4
|
-
*/
|
5
|
-
var async = require("async");
|
6
|
-
var path = require("path");
|
7
|
-
|
8
|
-
var Tapable = require("tapable");
|
9
|
-
var ContextModule = require("./ContextModule");
|
10
|
-
var ContextElementDependency = require("./dependencies/ContextElementDependency");
|
11
|
-
|
12
|
-
function ContextModuleFactory(resolvers) {
|
13
|
-
Tapable.call(this);
|
14
|
-
this.resolvers = resolvers;
|
15
|
-
}
|
16
|
-
module.exports = ContextModuleFactory;
|
17
|
-
|
18
|
-
ContextModuleFactory.prototype = Object.create(Tapable.prototype);
|
19
|
-
ContextModuleFactory.prototype.constructor = ContextModuleFactory;
|
20
|
-
|
21
|
-
ContextModuleFactory.prototype.create = function(context, dependency, callback) {
|
22
|
-
this.applyPluginsAsyncWaterfall("before-resolve", {
|
23
|
-
context: context,
|
24
|
-
request: dependency.request,
|
25
|
-
recursive: dependency.recursive,
|
26
|
-
regExp: dependency.regExp
|
27
|
-
}, function(err, result) {
|
28
|
-
if(err) return callback(err);
|
29
|
-
|
30
|
-
// Ignored
|
31
|
-
if(!result) return callback();
|
32
|
-
|
33
|
-
var context = result.context;
|
34
|
-
var request = result.request;
|
35
|
-
var recursive = result.recursive;
|
36
|
-
var regExp = result.regExp;
|
37
|
-
|
38
|
-
var loaders, resource, loadersPrefix = "";
|
39
|
-
var idx = request.lastIndexOf("!");
|
40
|
-
if(idx >= 0) {
|
41
|
-
loaders = request.substr(0, idx + 1);
|
42
|
-
for(var i = 0; i < loaders.length && loaders[i] === "!"; i++) {
|
43
|
-
loadersPrefix += "!";
|
44
|
-
}
|
45
|
-
loaders = loaders.substr(i).replace(/!+$/, "").replace(/!!+/g, "!");
|
46
|
-
if(loaders === "") loaders = [];
|
47
|
-
else loaders = loaders.split("!");
|
48
|
-
resource = request.substr(idx + 1);
|
49
|
-
} else {
|
50
|
-
loaders = [];
|
51
|
-
resource = request;
|
52
|
-
}
|
53
|
-
|
54
|
-
async.parallel([
|
55
|
-
this.resolvers.context.resolve.bind(this.resolvers.context, context, resource),
|
56
|
-
async.map.bind(async, loaders, this.resolvers.loader.resolve.bind(this.resolvers.loader, context))
|
57
|
-
], function(err, result) {
|
58
|
-
if(err) return callback(err);
|
59
|
-
|
60
|
-
this.applyPluginsAsyncWaterfall("after-resolve", {
|
61
|
-
loaders: loadersPrefix + result[1].join("!") + (result[1].length > 0 ? "!" : ""),
|
62
|
-
resource: result[0],
|
63
|
-
recursive: recursive,
|
64
|
-
regExp: regExp,
|
65
|
-
resolveDependencies: this.resolveDependencies.bind(this)
|
66
|
-
}, function(err, result) {
|
67
|
-
if(err) return callback(err);
|
68
|
-
|
69
|
-
// Ignored
|
70
|
-
if(!result) return callback();
|
71
|
-
|
72
|
-
return callback(null, new ContextModule(result.resolveDependencies, result.resource, result.recursive, result.regExp, result.loaders));
|
73
|
-
});
|
74
|
-
}.bind(this));
|
75
|
-
}.bind(this));
|
76
|
-
};
|
77
|
-
|
78
|
-
ContextModuleFactory.prototype.resolveDependencies = function resolveDependencies(fs, resource, recursive, regExp, callback) {
|
79
|
-
(function addDirectory(directory, callback) {
|
80
|
-
fs.readdir(directory, function(err, files) {
|
81
|
-
if(err) return callback(err);
|
82
|
-
if(!files || files.length === 0) return callback(null, []);
|
83
|
-
async.map(files.filter(function(p) {
|
84
|
-
return p.indexOf(".") !== 0;
|
85
|
-
}), function(seqment, callback) {
|
86
|
-
|
87
|
-
var subResource = path.join(directory, seqment);
|
88
|
-
|
89
|
-
fs.stat(subResource, function(err, stat) {
|
90
|
-
if(err) return callback(err);
|
91
|
-
|
92
|
-
if(stat.isDirectory()) {
|
93
|
-
|
94
|
-
if(!recursive) return callback();
|
95
|
-
addDirectory.call(this, subResource, callback);
|
96
|
-
|
97
|
-
} else if(stat.isFile()) {
|
98
|
-
|
99
|
-
var obj = {
|
100
|
-
context: resource,
|
101
|
-
request: "." + subResource.substr(resource.length).replace(/\\/g, "/")
|
102
|
-
};
|
103
|
-
this.applyPluginsAsyncWaterfall("alternatives", [obj], function(err, alternatives) {
|
104
|
-
if(err) return callback(err);
|
105
|
-
alternatives = alternatives.filter(function(obj) {
|
106
|
-
return regExp.test(obj.request);
|
107
|
-
}).map(function(obj) {
|
108
|
-
var dep = new ContextElementDependency(obj.request);
|
109
|
-
dep.optional = true;
|
110
|
-
return dep;
|
111
|
-
});
|
112
|
-
callback(null, alternatives);
|
113
|
-
});
|
114
|
-
|
115
|
-
} else callback();
|
116
|
-
|
117
|
-
}.bind(this));
|
118
|
-
|
119
|
-
}.bind(this), function(err, result) {
|
120
|
-
if(err) return callback(err);
|
121
|
-
|
122
|
-
if(!result) return callback(null, []);
|
123
|
-
|
124
|
-
callback(null, result.filter(function(i) {
|
125
|
-
return !!i;
|
126
|
-
}).reduce(function(a, i) {
|
127
|
-
return a.concat(i);
|
128
|
-
}, []));
|
129
|
-
});
|
130
|
-
}.bind(this));
|
131
|
-
}.call(this, resource, callback));
|
132
|
-
};
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
var async = require("async");
|
6
|
+
var path = require("path");
|
7
|
+
|
8
|
+
var Tapable = require("tapable");
|
9
|
+
var ContextModule = require("./ContextModule");
|
10
|
+
var ContextElementDependency = require("./dependencies/ContextElementDependency");
|
11
|
+
|
12
|
+
function ContextModuleFactory(resolvers) {
|
13
|
+
Tapable.call(this);
|
14
|
+
this.resolvers = resolvers;
|
15
|
+
}
|
16
|
+
module.exports = ContextModuleFactory;
|
17
|
+
|
18
|
+
ContextModuleFactory.prototype = Object.create(Tapable.prototype);
|
19
|
+
ContextModuleFactory.prototype.constructor = ContextModuleFactory;
|
20
|
+
|
21
|
+
ContextModuleFactory.prototype.create = function(context, dependency, callback) {
|
22
|
+
this.applyPluginsAsyncWaterfall("before-resolve", {
|
23
|
+
context: context,
|
24
|
+
request: dependency.request,
|
25
|
+
recursive: dependency.recursive,
|
26
|
+
regExp: dependency.regExp
|
27
|
+
}, function(err, result) {
|
28
|
+
if(err) return callback(err);
|
29
|
+
|
30
|
+
// Ignored
|
31
|
+
if(!result) return callback();
|
32
|
+
|
33
|
+
var context = result.context;
|
34
|
+
var request = result.request;
|
35
|
+
var recursive = result.recursive;
|
36
|
+
var regExp = result.regExp;
|
37
|
+
|
38
|
+
var loaders, resource, loadersPrefix = "";
|
39
|
+
var idx = request.lastIndexOf("!");
|
40
|
+
if(idx >= 0) {
|
41
|
+
loaders = request.substr(0, idx + 1);
|
42
|
+
for(var i = 0; i < loaders.length && loaders[i] === "!"; i++) {
|
43
|
+
loadersPrefix += "!";
|
44
|
+
}
|
45
|
+
loaders = loaders.substr(i).replace(/!+$/, "").replace(/!!+/g, "!");
|
46
|
+
if(loaders === "") loaders = [];
|
47
|
+
else loaders = loaders.split("!");
|
48
|
+
resource = request.substr(idx + 1);
|
49
|
+
} else {
|
50
|
+
loaders = [];
|
51
|
+
resource = request;
|
52
|
+
}
|
53
|
+
|
54
|
+
async.parallel([
|
55
|
+
this.resolvers.context.resolve.bind(this.resolvers.context, context, resource),
|
56
|
+
async.map.bind(async, loaders, this.resolvers.loader.resolve.bind(this.resolvers.loader, context))
|
57
|
+
], function(err, result) {
|
58
|
+
if(err) return callback(err);
|
59
|
+
|
60
|
+
this.applyPluginsAsyncWaterfall("after-resolve", {
|
61
|
+
loaders: loadersPrefix + result[1].join("!") + (result[1].length > 0 ? "!" : ""),
|
62
|
+
resource: result[0],
|
63
|
+
recursive: recursive,
|
64
|
+
regExp: regExp,
|
65
|
+
resolveDependencies: this.resolveDependencies.bind(this)
|
66
|
+
}, function(err, result) {
|
67
|
+
if(err) return callback(err);
|
68
|
+
|
69
|
+
// Ignored
|
70
|
+
if(!result) return callback();
|
71
|
+
|
72
|
+
return callback(null, new ContextModule(result.resolveDependencies, result.resource, result.recursive, result.regExp, result.loaders));
|
73
|
+
});
|
74
|
+
}.bind(this));
|
75
|
+
}.bind(this));
|
76
|
+
};
|
77
|
+
|
78
|
+
ContextModuleFactory.prototype.resolveDependencies = function resolveDependencies(fs, resource, recursive, regExp, callback) {
|
79
|
+
(function addDirectory(directory, callback) {
|
80
|
+
fs.readdir(directory, function(err, files) {
|
81
|
+
if(err) return callback(err);
|
82
|
+
if(!files || files.length === 0) return callback(null, []);
|
83
|
+
async.map(files.filter(function(p) {
|
84
|
+
return p.indexOf(".") !== 0;
|
85
|
+
}), function(seqment, callback) {
|
86
|
+
|
87
|
+
var subResource = path.join(directory, seqment);
|
88
|
+
|
89
|
+
fs.stat(subResource, function(err, stat) {
|
90
|
+
if(err) return callback(err);
|
91
|
+
|
92
|
+
if(stat.isDirectory()) {
|
93
|
+
|
94
|
+
if(!recursive) return callback();
|
95
|
+
addDirectory.call(this, subResource, callback);
|
96
|
+
|
97
|
+
} else if(stat.isFile()) {
|
98
|
+
|
99
|
+
var obj = {
|
100
|
+
context: resource,
|
101
|
+
request: "." + subResource.substr(resource.length).replace(/\\/g, "/")
|
102
|
+
};
|
103
|
+
this.applyPluginsAsyncWaterfall("alternatives", [obj], function(err, alternatives) {
|
104
|
+
if(err) return callback(err);
|
105
|
+
alternatives = alternatives.filter(function(obj) {
|
106
|
+
return regExp.test(obj.request);
|
107
|
+
}).map(function(obj) {
|
108
|
+
var dep = new ContextElementDependency(obj.request);
|
109
|
+
dep.optional = true;
|
110
|
+
return dep;
|
111
|
+
});
|
112
|
+
callback(null, alternatives);
|
113
|
+
});
|
114
|
+
|
115
|
+
} else callback();
|
116
|
+
|
117
|
+
}.bind(this));
|
118
|
+
|
119
|
+
}.bind(this), function(err, result) {
|
120
|
+
if(err) return callback(err);
|
121
|
+
|
122
|
+
if(!result) return callback(null, []);
|
123
|
+
|
124
|
+
callback(null, result.filter(function(i) {
|
125
|
+
return !!i;
|
126
|
+
}).reduce(function(a, i) {
|
127
|
+
return a.concat(i);
|
128
|
+
}, []));
|
129
|
+
});
|
130
|
+
}.bind(this));
|
131
|
+
}.call(this, resource, callback));
|
132
|
+
};
|