1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | "use strict";
|
7 |
|
8 | const {
|
9 | compareModulesByPreOrderIndexOrIdentifier
|
10 | } = require("../util/comparators");
|
11 | const {
|
12 | assignAscendingModuleIds,
|
13 | getUsedModuleIdsAndModules
|
14 | } = require("./IdHelpers");
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | class NaturalModuleIdsPlugin {
|
20 | |
21 |
|
22 |
|
23 |
|
24 |
|
25 | apply(compiler) {
|
26 | compiler.hooks.compilation.tap("NaturalModuleIdsPlugin", compilation => {
|
27 | compilation.hooks.moduleIds.tap("NaturalModuleIdsPlugin", modules => {
|
28 | const [usedIds, modulesInNaturalOrder] =
|
29 | getUsedModuleIdsAndModules(compilation);
|
30 | modulesInNaturalOrder.sort(
|
31 | compareModulesByPreOrderIndexOrIdentifier(compilation.moduleGraph)
|
32 | );
|
33 | assignAscendingModuleIds(usedIds, modulesInNaturalOrder, compilation);
|
34 | });
|
35 | });
|
36 | }
|
37 | }
|
38 |
|
39 | module.exports = NaturalModuleIdsPlugin;
|