Skip to content

Commit f9b81a7

Browse files
committed
make sure module moving don't hang in circular chunk dependencies
fixes webpack#2990
1 parent 17ca14c commit f9b81a7

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

lib/optimize/EnsureChunkConditionsPlugin.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@ EnsureChunkConditionsPlugin.prototype.apply = function(compiler) {
1313
chunk.modules.slice().forEach(function(module) {
1414
if(!module.chunkCondition) return;
1515
if(!module.chunkCondition(chunk)) {
16+
var usedChunks = module._EnsureChunkConditionsPlugin_usedChunks = (module._EnsureChunkConditionsPlugin_usedChunks || []).concat(chunk);
17+
var newChunks = [];
1618
chunk.parents.forEach(function(parent) {
17-
parent.addModule(module);
19+
if(usedChunks.indexOf(parent) < 0) {
20+
parent.addModule(module);
21+
newChunks.push(parent);
22+
}
1823
});
19-
module.rewriteChunkInReasons(chunk, chunk.parents);
24+
module.rewriteChunkInReasons(chunk, newChunks);
2025
chunk.removeModule(module);
2126
changed = true;
2227
}

0 commit comments

Comments
 (0)