Sha256: fe40b56a24f1a55f78d4a9b27e3e2b5b8e4c794a2c376c43b9c519d8a5443621
Contents?: true
Size: 1.15 KB
Versions: 3
Compression:
Stored size: 1.15 KB
Contents
/* 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;
Version data entries
3 entries across 3 versions & 2 rubygems