1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Florent Cailhol @ooflorent
- */
- "use strict";
- const {
- compareModulesByPreOrderIndexOrIdentifier
- } = require("../util/comparators");
- const {
- assignAscendingModuleIds,
- getUsedModuleIdsAndModules
- } = require("./IdHelpers");
- /** @typedef {import("../Compiler")} Compiler */
- /** @typedef {import("../Module")} Module */
- const PLUGIN_NAME = "NaturalModuleIdsPlugin";
- class NaturalModuleIdsPlugin {
- /**
- * Apply the plugin
- * @param {Compiler} compiler the compiler instance
- * @returns {void}
- */
- apply(compiler) {
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
- compilation.hooks.moduleIds.tap(PLUGIN_NAME, modules => {
- const [usedIds, modulesInNaturalOrder] =
- getUsedModuleIdsAndModules(compilation);
- modulesInNaturalOrder.sort(
- compareModulesByPreOrderIndexOrIdentifier(compilation.moduleGraph)
- );
- assignAscendingModuleIds(usedIds, modulesInNaturalOrder, compilation);
- });
- });
- }
- }
- module.exports = NaturalModuleIdsPlugin;
|