| 
									
										
										
										
											2014-12-22 19:33:40 +08:00
										 |  |  | var path = require("path"); | 
					
						
							|  |  |  | var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin"); | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | var outputOptions = { | 
					
						
							|  |  |  | 	path: path.join(__dirname, "js"), | 
					
						
							|  |  |  | 	filename: "[name].bundle.js", | 
					
						
							|  |  |  | 	chunkFilename: "[id].chunk.js" | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | module.exports = [{ | 
					
						
							|  |  |  | 	name: "page", | 
					
						
							| 
									
										
										
										
											2017-11-21 18:04:18 +08:00
										 |  |  | 	mode: "production", | 
					
						
							| 
									
										
										
										
											2014-12-22 19:33:40 +08:00
										 |  |  | 	entry: { | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 		page: "./page" | 
					
						
							| 
									
										
										
										
											2014-12-22 19:33:40 +08:00
										 |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 	output: outputOptions | 
					
						
							|  |  |  | }, { | 
					
						
							|  |  |  | 	name: "pageA", | 
					
						
							| 
									
										
										
										
											2017-11-21 18:04:18 +08:00
										 |  |  | 	mode: "production", | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 	entry: { | 
					
						
							|  |  |  | 		pageA: "./page" | 
					
						
							| 
									
										
										
										
											2014-12-22 19:33:40 +08:00
										 |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 	output: outputOptions, | 
					
						
							| 
									
										
										
										
											2014-12-22 19:33:40 +08:00
										 |  |  | 	plugins: [ | 
					
						
							| 
									
										
										
										
											2017-01-24 12:59:17 +08:00
										 |  |  | 		//check for common modules in children of pageA and move them to the parent
 | 
					
						
							| 
									
										
										
										
											2015-10-31 23:31:10 +08:00
										 |  |  | 		new CommonsChunkPlugin({ | 
					
						
							|  |  |  | 			name: "pageA", | 
					
						
							|  |  |  | 			children: true | 
					
						
							|  |  |  | 		}), | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 	] | 
					
						
							|  |  |  | }, { | 
					
						
							|  |  |  | 	name: "pageB", | 
					
						
							| 
									
										
										
										
											2017-11-21 18:04:18 +08:00
										 |  |  | 	mode: "production", | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 	entry: { | 
					
						
							|  |  |  | 		pageB: "./page" | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	output: outputOptions, | 
					
						
							|  |  |  | 	plugins: [ | 
					
						
							| 
									
										
										
										
											2014-12-22 19:33:40 +08:00
										 |  |  | 		// the same for pageB but move them if at least 3 children share the module
 | 
					
						
							| 
									
										
										
										
											2015-10-31 23:31:10 +08:00
										 |  |  | 		new CommonsChunkPlugin({ | 
					
						
							|  |  |  | 			name: "pageB", | 
					
						
							|  |  |  | 			children: true, | 
					
						
							|  |  |  | 			minChunks: 3 | 
					
						
							|  |  |  | 		}), | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 	] | 
					
						
							|  |  |  | }, { | 
					
						
							|  |  |  | 	name: "pageC", | 
					
						
							| 
									
										
										
										
											2017-11-21 18:04:18 +08:00
										 |  |  | 	mode: "production", | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 	entry: { | 
					
						
							|  |  |  | 		pageC: "./page" | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	output: outputOptions, | 
					
						
							|  |  |  | 	plugins: [ | 
					
						
							| 
									
										
										
										
											2014-12-22 19:33:40 +08:00
										 |  |  | 		// the same for pageC and pageD but with a custom logic for moving
 | 
					
						
							| 
									
										
										
										
											2015-10-31 23:31:10 +08:00
										 |  |  | 		new CommonsChunkPlugin({ | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 			name: "pageC", | 
					
						
							| 
									
										
										
										
											2015-10-31 23:31:10 +08:00
										 |  |  | 			children: true, | 
					
						
							|  |  |  | 			minChunks: function(module, count) { | 
					
						
							|  |  |  | 				// move only module "b"
 | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | 				return !/b\.js/.test(module.identifier()); | 
					
						
							| 
									
										
										
										
											2015-10-31 23:31:10 +08:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2014-12-22 19:33:40 +08:00
										 |  |  | 		}) | 
					
						
							|  |  |  | 	] | 
					
						
							| 
									
										
										
										
											2017-02-06 18:17:08 +08:00
										 |  |  | }]; |