Blame view

node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js 947 Bytes
2a09d1a4   liuqimichale   添加宜春 天水 宣化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  /*
  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
  "use strict";
  
  class FlagIncludedChunksPlugin {
  
  	apply(compiler) {
  		compiler.plugin("compilation", (compilation) => {
  			compilation.plugin("optimize-chunk-ids", (chunks) => {
  				chunks.forEach((chunkA) => {
  					chunks.forEach((chunkB) => {
  						// as we iterate the same iterables twice
  						// skip if we find ourselves
  						if(chunkA === chunkB) return;
  
  						// instead of swapping A and B just bail
  						// as we loop twice the current A will be B and B then A
  						if(chunkA.getNumberOfModules() < chunkB.getNumberOfModules()) return;
  
  						if(chunkB.getNumberOfModules() === 0) return;
  
  						// is chunkB in chunkA?
  						for(const m of chunkB.modulesIterable) {
  							if(!chunkA.containsModule(m)) return;
  						}
  						chunkA.ids.push(chunkB.id);
  					});
  				});
  			});
  		});
  	}
  }
  module.exports = FlagIncludedChunksPlugin;