Skip to content

Commit 775a908

Browse files
committed
moved dependency block loading into separate file
1 parent 4b5e733 commit 775a908

3 files changed

Lines changed: 40 additions & 26 deletions

File tree

lib/dependencies/AMDRequireDependency.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Author Tobias Koppers @sokra
44
*/
55
var NullDependency = require("./NullDependency");
6+
var DepBlockHelpers = require("./DepBlockHelpers");
67

78
function AMDRequireDependency(block) {
89
NullDependency.call(this);
@@ -17,35 +18,35 @@ AMDRequireDependency.Template = function AMDRequireDependencyTemplate() {};
1718

1819
AMDRequireDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) {
1920
var depBlock = dep.block;
20-
var chunkId = depBlock.chunk && !depBlock.chunk.entry && depBlock.chunk.id;
21+
var wrapper = DepBlockHelpers.getLoadDepBlockWrapper(depBlock, outputOptions, requestShortener, "require");
2122
if(depBlock.arrayRange && !depBlock.functionRange) {
22-
if(typeof chunkId === "number") {
23+
if(wrapper) {
2324
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0]-1,
24-
"__webpack_require__.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(__webpack_require__) {");
25-
source.replace(depBlock.arrayRange[1], depBlock.outerRange[1]-1, ";})");
25+
wrapper[0] + "function() {");
26+
source.replace(depBlock.arrayRange[1], depBlock.outerRange[1]-1, ";}" + wrapper[1]);
2627
} else {
2728
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0]-1,
2829
"!/* require */(" + asComment(depBlock.chunkReason));
2930
source.replace(depBlock.arrayRange[1], depBlock.outerRange[1]-1, ")");
3031
}
3132
} else if(!depBlock.arrayRange && depBlock.functionRange) {
32-
if(typeof chunkId === "number") {
33+
if(wrapper) {
3334
source.replace(depBlock.outerRange[0], depBlock.functionRange[0]-1,
34-
"__webpack_require__.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(__webpack_require__) {(");
35-
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, ".call(exports, __webpack_require__, exports, module));})");
35+
wrapper[0] + "function(__webpack_require__) {(");
36+
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, ".call(exports, __webpack_require__, exports, module));}" + wrapper[1]);
3637
} else {
3738
source.replace(depBlock.outerRange[0], depBlock.functionRange[0]-1,
3839
"!/* require */(" + asComment(depBlock.chunkReason));
3940
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, ".call(exports, __webpack_require__, exports, module))");
4041
}
4142
} else if(depBlock.arrayRange && depBlock.functionRange) {
42-
if(typeof chunkId === "number") {
43+
if(wrapper) {
4344
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0]-1,
44-
"__webpack_require__.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(__webpack_require__) { ");
45+
wrapper[0] + "function(__webpack_require__) { ");
4546
source.insert(depBlock.arrayRange[0] + 0.9, "var __WEBPACK_AMD_REQUIRE_ARRAY__ = ");
4647
source.replace(depBlock.arrayRange[1], depBlock.functionRange[0]-1, "; (");
4748
source.insert(depBlock.functionRange[1], ".apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));");
48-
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, "})");
49+
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, "}" + wrapper[1]);
4950
} else {
5051
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0]-1,
5152
"!/* require */(" + asComment(depBlock.chunkReason) + "function() { ");
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
MIT License http://www.opensource.org/licenses/mit-license.php
3+
Author Tobias Koppers @sokra
4+
*/
5+
var DepBlockHelpers = exports;
6+
7+
DepBlockHelpers.getLoadDepBlockWrapper = function(depBlock, outputOptions, requestShortener, name) {
8+
if(depBlock.chunk && !depBlock.chunk.entry && typeof depBlock.chunk.id === "number") {
9+
return [
10+
"__webpack_require__.e" + asComment(name) + "(" + depBlock.chunk.id + "" +
11+
(outputOptions.pathinfo && depBlock.chunkName ? "/*! " + requestShortener.shorten(depBlock.chunkName) + " */" : "") +
12+
asComment(depBlock.chunkReason) + ", ",
13+
")"
14+
];
15+
}
16+
};
17+
18+
function asComment(str) {
19+
if(!str) return "";
20+
return "/* " + str + " */";
21+
}

lib/dependencies/RequireEnsureDependency.js

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Author Tobias Koppers @sokra
44
*/
55
var NullDependency = require("./NullDependency");
6+
var DepBlockHelpers = require("./DepBlockHelpers");
67

78
function RequireEnsureDependency(block) {
89
NullDependency.call(this);
@@ -18,21 +19,12 @@ RequireEnsureDependency.Template = function RequireEnsureDependencyTemplate() {}
1819

1920
RequireEnsureDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) {
2021
var depBlock = dep.block;
21-
if(depBlock.chunk && !depBlock.chunk.entry && typeof depBlock.chunk.id === "number") {
22-
if(depBlock.chunkNameRange) {
23-
var comment = "";
24-
if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(depBlock.chunkName) + " */ ";
25-
source.replace(depBlock.chunkNameRange[0], depBlock.chunkNameRange[1]-1, comment + "0");
26-
}
27-
source.replace(depBlock.expr.callee.range[0], depBlock.expr.callee.range[1]-1, "__webpack_require__.e/*nsure*/");
28-
source.replace(depBlock.expr.arguments[0].range[0], depBlock.expr.arguments[0].range[1]-1, (depBlock.chunk.id) + "" + asComment(depBlock.chunkReason));
29-
} else {
30-
source.replace(depBlock.expr.range[0], depBlock.expr.arguments[1].range[0]-1, "!/*require.ensure*/(");
31-
source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.range[1]-1, "(__webpack_require__))");
32-
}
22+
var wrapper = DepBlockHelpers.getLoadDepBlockWrapper(depBlock, outputOptions, requestShortener, /*require.e*/"nsure");
23+
if(!wrapper) wrapper = [
24+
"!/* require.ensure */(",
25+
"(__webpack_require__))"
26+
];
27+
source.replace(depBlock.expr.range[0], depBlock.expr.arguments[1].range[0]-1, wrapper[0]);
28+
source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.range[1]-1, wrapper[1]);
3329
};
3430

35-
function asComment(str) {
36-
if(!str) return "";
37-
return "/* " + str + " */";
38-
}

0 commit comments

Comments
 (0)