| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 
							- /*
 
- 	MIT License http://www.opensource.org/licenses/mit-license.php
 
- 	Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- /** @typedef {import("../Compiler")} Compiler */
 
- class NaturalChunkOrderPlugin {
 
- 	/**
 
- 	 * @param {Compiler} compiler webpack compiler
 
- 	 * @returns {void}
 
- 	 */
 
- 	apply(compiler) {
 
- 		compiler.hooks.compilation.tap("NaturalChunkOrderPlugin", compilation => {
 
- 			compilation.hooks.optimizeChunkOrder.tap(
 
- 				"NaturalChunkOrderPlugin",
 
- 				chunks => {
 
- 					chunks.sort((chunkA, chunkB) => {
 
- 						const a = chunkA.modulesIterable[Symbol.iterator]();
 
- 						const b = chunkB.modulesIterable[Symbol.iterator]();
 
- 						// eslint-disable-next-line no-constant-condition
 
- 						while (true) {
 
- 							const aItem = a.next();
 
- 							const bItem = b.next();
 
- 							if (aItem.done && bItem.done) return 0;
 
- 							if (aItem.done) return -1;
 
- 							if (bItem.done) return 1;
 
- 							const aModuleId = aItem.value.id;
 
- 							const bModuleId = bItem.value.id;
 
- 							if (aModuleId < bModuleId) return -1;
 
- 							if (aModuleId > bModuleId) return 1;
 
- 						}
 
- 					});
 
- 				}
 
- 			);
 
- 		});
 
- 	}
 
- }
 
- module.exports = NaturalChunkOrderPlugin;
 
 
  |