Skip to content

Commit 03c87c1

Browse files
committed
support [name] in chunkFilename
fixes webpack#358
1 parent 53c3858 commit 03c87c1

10 files changed

Lines changed: 23 additions & 16 deletions

lib/AmdMainTemplatePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ AmdMainTemplatePlugin.prototype.apply = function(mainTemplate) {
2525
.replace(Template.REGEXP_HASH, hash)
2626
.replace(Template.REGEXP_CHUNKHASH, chunk.renderedHash)
2727
.replace(Template.REGEXP_ID, chunk.id)
28-
.replace(Template.REGEXP_NAME, chunk.name || "");
28+
.replace(Template.REGEXP_NAME, chunk.name || chunk.id);
2929
return new ConcatSource("define(" + JSON.stringify(name) + ", " + externalsDepsArray + ", function(" + externalsArguments + ") { return ", source, "});");
3030
} else if(externalsArguments) {
3131
return new ConcatSource("define(" + externalsDepsArray + ", function(" + externalsArguments + ") { return ", source, "});");

lib/Compilation.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,7 @@ Compilation.prototype.modifyHash = function modifyHash(update) {
651651
Compilation.prototype.createChunkAssets = function createChunkAssets() {
652652
var outputOptions = this.outputOptions;
653653
var filename = outputOptions.filename || "bundle.js";
654-
var chunkFilename = outputOptions.chunkFilename || "[id]." + filename.replace(Template.REGEXP_NAME, "");
654+
var chunkFilename = outputOptions.chunkFilename || "[id]." + filename;
655655
var namedChunkFilename = outputOptions.namedChunkFilename || null;
656656
for(var i = 0; i < this.modules.length; i++) {
657657
var module = this.modules[i];
@@ -693,7 +693,7 @@ Compilation.prototype.createChunkAssets = function createChunkAssets() {
693693
.replace(Template.REGEXP_HASH, this.hash)
694694
.replace(Template.REGEXP_CHUNKHASH, chunk.renderedHash)
695695
.replace(Template.REGEXP_ID, chunk.id)
696-
.replace(Template.REGEXP_NAME, chunk.name || "")
696+
.replace(Template.REGEXP_NAME, chunk.name || chunk.id)
697697
] = source;
698698
chunk.files.push(file);
699699
this.applyPlugins("chunk-asset", chunk, file);
@@ -703,7 +703,7 @@ Compilation.prototype.createChunkAssets = function createChunkAssets() {
703703
.replace(Template.REGEXP_CHUNKHASH, chunk.renderedHash)
704704
.replace(Template.REGEXP_HASH, this.hash)
705705
.replace(Template.REGEXP_ID, chunk.id)
706-
.replace(Template.REGEXP_NAME, chunk.name || "")
706+
.replace(Template.REGEXP_NAME, chunk.name || chunk.id)
707707
] = source;
708708
chunk.files.push(file);
709709
this.applyPlugins("chunk-asset", chunk, file);

lib/JsonpExportMainTemplatePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ JsonpExportMainTemplatePlugin.prototype.apply = function(mainTemplate) {
1515
.replace(Template.REGEXP_HASH, hash)
1616
.replace(Template.REGEXP_CHUNKHASH, chunk.renderedHash)
1717
.replace(Template.REGEXP_ID, chunk.id)
18-
.replace(Template.REGEXP_NAME, chunk.name || "");
18+
.replace(Template.REGEXP_NAME, chunk.name || chunk.id);
1919
return new ConcatSource(name + "(", source, ");");
2020
}.bind(this));
2121
mainTemplate.plugin("global-hash", function(chunk) {

lib/JsonpMainTemplatePlugin.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,14 @@ JsonpMainTemplatePlugin.prototype.apply = function(mainTemplate) {
3333
var filename = this.outputOptions.filename || "bundle.js";
3434
var chunkFilename = this.outputOptions.chunkFilename || "[id]." + filename;
3535
var chunkHashMap = {};
36+
var chunkNameMap = {};
3637
(function addChunk(c) {
3738
if(c.id in chunkHashMap) return;
3839
if(c.entry)
3940
chunkHashMap[c.id] = undefined;
4041
else
4142
chunkHashMap[c.id] = c.renderedHash;
43+
chunkNameMap[c.id] = c.name || c.id;
4244
c.chunks.forEach(addChunk);
4345
}(chunk));
4446
return this.asString([
@@ -58,9 +60,10 @@ JsonpMainTemplatePlugin.prototype.apply = function(mainTemplate) {
5860
"script.type = 'text/javascript';",
5961
"script.charset = 'utf-8';",
6062
"script.src = " + this.requireFn + ".p + " +
61-
JSON.stringify(chunkFilename.replace(Template.REGEXP_NAME, ""))
63+
JSON.stringify(chunkFilename)
6264
.replace(Template.REGEXP_HASH, "\" + " + this.renderCurrentHashCode(hash) + " + \"")
6365
.replace(Template.REGEXP_CHUNKHASH, "\" + " + JSON.stringify(chunkHashMap) + "[chunkId] + \"")
66+
.replace(Template.REGEXP_NAME, "\" + " + JSON.stringify(chunkNameMap) + "[chunkId] + \"")
6467
.replace(Template.REGEXP_ID, "\" + chunkId + \"") + ";",
6568
"head.appendChild(script);"
6669
]),

lib/MainTemplate.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,11 @@ function MainTemplate(outputOptions) {
9494
var publicPath = this.outputOptions.publicPath || "";
9595
var filename = this.outputOptions.filename || "";
9696
var chunkFilename = this.outputOptions.chunkFilename || "";
97-
if(Template.REGEXP_HASH.test(publicPath) || Template.REGEXP_CHUNKHASH.test(publicPath))
97+
if(Template.REGEXP_HASH.test(publicPath) || Template.REGEXP_CHUNKHASH.test(publicPath) || Template.REGEXP_NAME.test(publicPath))
9898
return true;
99-
if(Template.REGEXP_HASH.test(filename) || Template.REGEXP_CHUNKHASH.test(filename))
99+
if(Template.REGEXP_HASH.test(filename) || Template.REGEXP_CHUNKHASH.test(filename) || Template.REGEXP_NAME.test(filename))
100100
return true;
101-
if(Template.REGEXP_HASH.test(chunkFilename) || Template.REGEXP_CHUNKHASH.test(chunkFilename))
101+
if(Template.REGEXP_HASH.test(chunkFilename) || Template.REGEXP_CHUNKHASH.test(chunkFilename) || Template.REGEXP_NAME.test(chunkFilename))
102102
return true;
103103
});
104104
}

lib/SetVarMainTemplatePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ SetVarMainTemplatePlugin.prototype.apply = function(mainTemplate) {
1616
.replace(Template.REGEXP_HASH, hash)
1717
.replace(Template.REGEXP_CHUNKHASH, chunk.renderedHash)
1818
.replace(Template.REGEXP_ID, chunk.id)
19-
.replace(Template.REGEXP_NAME, chunk.name || "");
19+
.replace(Template.REGEXP_NAME, chunk.name || chunk.id);
2020
if(this.copyObject) {
2121
return new ConcatSource("(function(e, a) { for(var i in a) e[i] = a[i]; }(" +
2222
varExpression + ", ", source, "))");

lib/UmdMainTemplatePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ UmdMainTemplatePlugin.prototype.apply = function(mainTemplate) {
3535
.replace(Template.REGEXP_HASH, hash)
3636
.replace(Template.REGEXP_CHUNKHASH, chunk.renderedHash)
3737
.replace(Template.REGEXP_ID, chunk.id)
38-
.replace(Template.REGEXP_NAME, chunk.name || ""));
38+
.replace(Template.REGEXP_NAME, chunk.name || chunk.id));
3939
}
4040
function externalsDepsArray() {
4141
return "[" + replaceKeys(externals.map(function(m) {

lib/node/NodeMainTemplatePlugin.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ NodeMainTemplatePlugin.prototype.apply = function(mainTemplate) {
4545
"installedChunks[chunkId] = [callback];",
4646
"var filename = __dirname + " + JSON.stringify("/" + chunkFilename
4747
.replace(Template.REGEXP_HASH, hash)
48-
.replace(Template.REGEXP_NAME, ""))
48+
.replace(Template.REGEXP_NAME, "(not implemented)")
49+
.replace(Template.REGEXP_CHUNKHASH, "(not implemented)"))
4950
.replace(Template.REGEXP_ID, "\" + chunkId + \"") + ";",
5051
"require('fs').readFile(filename, 'utf-8', function(err, content) {",
5152
this.indent([
@@ -79,7 +80,8 @@ NodeMainTemplatePlugin.prototype.apply = function(mainTemplate) {
7980
"var chunk = require(" +
8081
JSON.stringify("./" + chunkFilename
8182
.replace(Template.REGEXP_HASH, hash)
82-
.replace(Template.REGEXP_NAME, ""))
83+
.replace(Template.REGEXP_NAME, "(not implemented)")
84+
.replace(Template.REGEXP_CHUNKHASH, "(not implemented)"))
8385
.replace(Template.REGEXP_ID, "\" + chunkId + \"") + ");"
8486
].concat(insertMoreModules).concat([
8587
"for(var i = 0; i < chunkIds.length; i++)",

lib/webworker/WebWorkerMainTemplatePlugin.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ WebWorkerMainTemplatePlugin.prototype.apply = function(mainTemplate) {
3636
this.indent([
3737
"importScripts(" +
3838
JSON.stringify(chunkFilename
39-
.replace(Template.REGEXP_NAME, ""))
39+
.replace(Template.REGEXP_NAME, "(not implemented)")
40+
.replace(Template.REGEXP_CHUNKHASH, "(not implemented)"))
4041
.replace(Template.REGEXP_HASH, "\" + " + this.renderCurrentHashCode(hash) + " + \"")
4142
.replace(Template.REGEXP_ID, "\" + chunkId + \"") + ");"
4243
]),

test/browsertest/build.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ var library1 = cp.spawn("node", join(["../../bin/webpack.js", "--output-pathinfo
3434
bindOutput(library1);
3535
library1.on("exit", function(code) {
3636
if(code === 0) {
37-
// node ../../bin/webpack --output-pathinfo --colors --resolve-alias vm=vm-browserify --output-public-path js/ --module-bind json --module-bind css=style!css --module-bind less=style!css!less --module-bind coffee --module-bind jade --prefetch ./lib/stylesheet.less --optimize-dedupe --labeled-modules ./lib/index "js/web.js?h=[hash]"
37+
// node ../../bin/webpack --output-pathinfo --colors --resolve-alias vm=vm-browserify --output-public-path js/ --output-chunk-file [name].web.js --module-bind json --module-bind css=style!css --module-bind less=style!css!less --module-bind coffee --module-bind jade --prefetch ./lib/stylesheet.less --optimize-dedupe --labeled-modules ./lib/index "js/web.js?h=[hash]"
3838
var main = cp.spawn("node", join(["../../bin/webpack.js", "--output-pathinfo", "--colors", "--resolve-alias", "vm=vm-browserify", "--workers",
39-
"--output-public-path", "js/", "--module-bind", "json", "--module-bind", "css=style!css", "--module-bind", "less=style/url!file?postfix=.css&string!less", "--module-bind", "coffee", "--module-bind", "jade", "--prefetch", "./lib/stylesheet.less", "--optimize-dedupe", "--labeled-modules", "./lib/index", "js/web.js?h=[hash]", "--progress"], extraArgs));
39+
"--output-public-path", "js/", "--output-chunk-file", "[name].web.js",
40+
"--module-bind", "json", "--module-bind", "css=style!css", "--module-bind", "less=style/url!file?postfix=.css&string!less", "--module-bind", "coffee", "--module-bind", "jade", "--prefetch", "./lib/stylesheet.less", "--optimize-dedupe", "--labeled-modules", "./lib/index", "js/web.js?h=[hash]", "--progress"], extraArgs));
4041
bindOutput(main);
4142
}
4243
});

0 commit comments

Comments
 (0)