From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- .../lib/optimize/MergeDuplicateChunksPlugin.js | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js (limited to 'node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js') diff --git a/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js b/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js new file mode 100644 index 000000000..90df06b51 --- /dev/null +++ b/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js @@ -0,0 +1,33 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +function getChunkIdentifier(chunk) { + return chunk.modules.map((m) => { + return m.identifier(); + }).sort().join(", "); +} + +class MergeDuplicateChunksPlugin { + + apply(compiler) { + compiler.plugin("compilation", (compilation) => { + compilation.plugin("optimize-chunks-basic", (chunks) => { + const map = {}; + chunks.slice().forEach((chunk) => { + if(chunk.hasRuntime() || chunk.hasEntryModule()) return; + const ident = getChunkIdentifier(chunk); + if(map[ident]) { + if(map[ident].integrate(chunk, "duplicate")) + chunks.splice(chunks.indexOf(chunk), 1); + return; + } + map[ident] = chunk; + }); + }); + }); + } +} +module.exports = MergeDuplicateChunksPlugin; -- cgit v1.2.3