fix: order modules in different platforms

This commit is contained in:
alexander.akait 2022-09-26 21:30:56 +03:00
parent 9fcaa24357
commit 44574eaef9
3 changed files with 27 additions and 2 deletions

View File

@ -22,7 +22,10 @@ const RuntimeGlobals = require("../RuntimeGlobals");
const Template = require("../Template");
const { last, someInIterable } = require("../util/IterableHelpers");
const StringXor = require("../util/StringXor");
const { compareModulesByIdentifier } = require("../util/comparators");
const {
compareModulesByIdentifier,
compareModulesByReadableIdentifier
} = require("../util/comparators");
const createHash = require("../util/createHash");
const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
const { intersectRuntime } = require("../util/runtime");
@ -692,7 +695,7 @@ class JavascriptModulesPlugin {
chunkGraph.getOrderedChunkModulesIterableBySourceType(
chunk,
"javascript",
compareModulesByIdentifier
compareModulesByReadableIdentifier(compilation.requestShortener)
) || []
);

View File

@ -13,6 +13,7 @@ const { compareRuntime } = require("./runtime");
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
/** @typedef {import("../Module")} Module */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../RequestShortener")} RequestShortener */
/** @template T @typedef {function(T, T): -1|0|1} Comparator */
/** @template TArg @template T @typedef {function(TArg, T, T): -1|0|1} RawParameterizedComparator */
@ -58,6 +59,24 @@ exports.compareModulesByIdentifier = (a, b) => {
return compareIds(a.identifier(), b.identifier());
};
/**
* @param {RequestShortener} requestShortener Request shortener
* @returns {(a: Module, b: Module) => -1|0|1} Function for compare
*/
exports.compareModulesByReadableIdentifier = requestShortener => {
/**
* @param {Module} a module
* @param {Module} b module
* @returns {-1|0|1} compare result
*/
return (a, b) => {
return compareIds(
a.readableIdentifier(requestShortener),
b.readableIdentifier(requestShortener)
);
};
};
/**
* @param {ChunkGraph} chunkGraph the chunk graph
* @param {Module} a module

3
types.d.ts vendored
View File

@ -12925,6 +12925,9 @@ declare namespace exports {
a: Module,
b: Module
) => 0 | 1 | -1;
export let compareModulesByReadableIdentifier: (
requestShortener: RequestShortener
) => (a: Module, b: Module) => 0 | 1 | -1;
export let compareModulesById: ParameterizedComparator<
ChunkGraph,
Module