| 
									
										
										
										
											2013-01-31 01:49:25 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | 	Author Tobias Koppers @sokra | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2017-01-06 00:48:16 +08:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class RemoveEmptyChunksPlugin { | 
					
						
							|  |  |  | 	apply(compiler) { | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 		compiler.hooks.compilation.tap("RemoveEmptyChunksPlugin", compilation => { | 
					
						
							|  |  |  | 			const handler = chunks => { | 
					
						
							| 
									
										
										
										
											2018-05-13 06:15:39 +08:00
										 |  |  | 				for (let i = chunks.length - 1; i >= 0; i--) { | 
					
						
							|  |  |  | 					const chunk = chunks[i]; | 
					
						
							|  |  |  | 					if ( | 
					
						
							|  |  |  | 						chunk.isEmpty() && | 
					
						
							|  |  |  | 						!chunk.hasRuntime() && | 
					
						
							|  |  |  | 						!chunk.hasEntryModule() | 
					
						
							|  |  |  | 					) { | 
					
						
							| 
									
										
										
										
											2018-05-13 07:04:06 +08:00
										 |  |  | 						chunk.remove("empty"); | 
					
						
							| 
									
										
										
										
											2018-05-13 06:15:39 +08:00
										 |  |  | 						chunks.splice(i, 1); | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2017-12-14 04:35:39 +08:00
										 |  |  | 			}; | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 			compilation.hooks.optimizeChunksBasic.tap( | 
					
						
							|  |  |  | 				"RemoveEmptyChunksPlugin", | 
					
						
							|  |  |  | 				handler | 
					
						
							|  |  |  | 			); | 
					
						
							| 
									
										
										
										
											2018-04-27 20:29:34 +08:00
										 |  |  | 			compilation.hooks.optimizeChunksAdvanced.tap( | 
					
						
							|  |  |  | 				"RemoveEmptyChunksPlugin", | 
					
						
							|  |  |  | 				handler | 
					
						
							|  |  |  | 			); | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 			compilation.hooks.optimizeExtractedChunksBasic.tap( | 
					
						
							|  |  |  | 				"RemoveEmptyChunksPlugin", | 
					
						
							|  |  |  | 				handler | 
					
						
							|  |  |  | 			); | 
					
						
							| 
									
										
										
										
											2018-04-27 20:29:34 +08:00
										 |  |  | 			compilation.hooks.optimizeExtractedChunksAdvanced.tap( | 
					
						
							|  |  |  | 				"RemoveEmptyChunksPlugin", | 
					
						
							|  |  |  | 				handler | 
					
						
							|  |  |  | 			); | 
					
						
							| 
									
										
										
										
											2013-01-31 01:49:25 +08:00
										 |  |  | 		}); | 
					
						
							| 
									
										
										
										
											2017-01-06 00:48:16 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | module.exports = RemoveEmptyChunksPlugin; |