| 12345678910111213141516171819202122232425262728293031323334353637383940 | 
							- /*
 
- 	MIT License http://www.opensource.org/licenses/mit-license.php
 
- 	Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- class EnsureChunkConditionsPlugin {
 
- 	apply(compiler) {
 
- 		compiler.plugin("compilation", (compilation) => {
 
- 			const triesMap = new Map();
 
- 			compilation.plugin(["optimize-chunks-basic", "optimize-extracted-chunks-basic"], (chunks) => {
 
- 				let changed = false;
 
- 				chunks.forEach((chunk) => {
 
- 					chunk.forEachModule((module) => {
 
- 						if(!module.chunkCondition) return;
 
- 						if(!module.chunkCondition(chunk)) {
 
- 							let usedChunks = triesMap.get(module);
 
- 							if(!usedChunks) triesMap.set(module, usedChunks = new Set());
 
- 							usedChunks.add(chunk);
 
- 							const newChunks = [];
 
- 							chunk.parents.forEach((parent) => {
 
- 								if(!usedChunks.has(parent)) {
 
- 									parent.addModule(module);
 
- 									module.addChunk(parent);
 
- 									newChunks.push(parent);
 
- 								}
 
- 							});
 
- 							module.rewriteChunkInReasons(chunk, newChunks);
 
- 							chunk.removeModule(module);
 
- 							changed = true;
 
- 						}
 
- 					});
 
- 				});
 
- 				if(changed) return true;
 
- 			});
 
- 		});
 
- 	}
 
- }
 
- module.exports = EnsureChunkConditionsPlugin;
 
 
  |