Skip to content

Commit

Permalink
Limits length of readable identifier in default stats
Browse files Browse the repository at this point in the history
Reduces the length of the readable identifier shown in
webpack output, so the user is not overwhelmed with large
blocks of text. See issue # 16475
  • Loading branch information
Trevor Github committed Nov 15, 2022
1 parent 8241da7 commit d5b488f
Showing 1 changed file with 43 additions and 10 deletions.
53 changes: 43 additions & 10 deletions lib/stats/DefaultStatsFactoryPlugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,17 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
* @property {ExtractorsByOption<Dependency, StatsModuleTraceDependency>} moduleTraceDependency
*/

/**
* @param {string} readableIdentifier user readable identifier of the module
* @returns {string} an elided readableIdentifier, when readableIdentifier exceeds a maximum length
*/
const truncateLongReadableIdentifier = readableIdentifier => {
const maxLength = 80;
return readableIdentifier.length > maxLength
? readableIdentifier.substring(0, maxLength) + "..."
: readableIdentifier;
};

/**
* @template T
* @template I
Expand Down Expand Up @@ -393,7 +404,9 @@ const EXTRACT_ERROR = {
}
if (error.module) {
object.moduleIdentifier = error.module.identifier();
object.moduleName = error.module.readableIdentifier(requestShortener);
object.moduleName = truncateLongReadableIdentifier(
error.module.readableIdentifier(requestShortener)
);
}
if (error.loc) {
object.loc = formatLocation(error.loc);
Expand Down Expand Up @@ -1133,7 +1146,9 @@ const SIMPLE_EXTRACTORS = {
/** @type {KnownStatsModule} */
const statsModule = {
identifier: module.identifier(),
name: module.readableIdentifier(requestShortener),
name: truncateLongReadableIdentifier(
module.readableIdentifier(requestShortener)
),
nameForCondition: module.nameForCondition(),
index: moduleGraph.getPreOrderIndex(module),
preOrderIndex: moduleGraph.getPreOrderIndex(module),
Expand All @@ -1146,7 +1161,11 @@ const SIMPLE_EXTRACTORS = {
compilation.chunkGraph.getNumberOfModuleChunks(module) === 0,
dependent: rootModules ? !rootModules.has(module) : undefined,
issuer: issuer && issuer.identifier(),
issuerName: issuer && issuer.readableIdentifier(requestShortener),
issuerName:
issuer &&
truncateLongReadableIdentifier(
issuer.readableIdentifier(requestShortener)
),
issuerPath:
issuer &&
factory.create(`${type.slice(0, -8)}.issuerPath`, path, context),
Expand Down Expand Up @@ -1286,7 +1305,9 @@ const SIMPLE_EXTRACTORS = {
/** @type {KnownStatsModuleIssuer} */
const statsModuleIssuer = {
identifier: module.identifier(),
name: module.readableIdentifier(requestShortener)
name: truncateLongReadableIdentifier(
module.readableIdentifier(requestShortener)
)
};
Object.assign(object, statsModuleIssuer);
if (profile) {
Expand All @@ -1308,16 +1329,22 @@ const SIMPLE_EXTRACTORS = {
? reason.originModule.identifier()
: null,
module: reason.originModule
? reason.originModule.readableIdentifier(requestShortener)
? truncateLongReadableIdentifier(
reason.originModule.readableIdentifier(requestShortener)
)
: null,
moduleName: reason.originModule
? reason.originModule.readableIdentifier(requestShortener)
? truncateLongReadableIdentifier(
reason.originModule.readableIdentifier(requestShortener)
)
: null,
resolvedModuleIdentifier: reason.resolvedOriginModule
? reason.resolvedOriginModule.identifier()
: null,
resolvedModule: reason.resolvedOriginModule
? reason.resolvedOriginModule.readableIdentifier(requestShortener)
? truncateLongReadableIdentifier(
reason.resolvedOriginModule.readableIdentifier(requestShortener)
)
: null,
type: reason.dependency ? reason.dependency.type : null,
active: reason.isActive(runtime),
Expand Down Expand Up @@ -1445,7 +1472,9 @@ const SIMPLE_EXTRACTORS = {
module: origin.module ? origin.module.identifier() : "",
moduleIdentifier: origin.module ? origin.module.identifier() : "",
moduleName: origin.module
? origin.module.readableIdentifier(requestShortener)
? truncateLongReadableIdentifier(
origin.module.readableIdentifier(requestShortener)
)
: "",
loc: formatLocation(origin.loc),
request: origin.request
Expand All @@ -1467,9 +1496,13 @@ const SIMPLE_EXTRACTORS = {
compilation: { moduleGraph }
} = context;
object.originIdentifier = origin.identifier();
object.originName = origin.readableIdentifier(requestShortener);
object.originName = truncateLongReadableIdentifier(
origin.readableIdentifier(requestShortener)
);
object.moduleIdentifier = module.identifier();
object.moduleName = module.readableIdentifier(requestShortener);
object.moduleName = truncateLongReadableIdentifier(
module.readableIdentifier(requestShortener)
);
const dependencies = Array.from(
moduleGraph.getIncomingConnections(module)
)
Expand Down

0 comments on commit d5b488f

Please sign in to comment.