Heim > Web-Frontend > js-Tutorial > Hauptteil

analysierenSizeChange-Skript im tRPC-Quellcode

Barbara Streisand
Freigeben: 2024-10-25 06:37:29
Original
990 Leute haben es durchsucht

In diesem Artikel geben wir einen Überblick über das Skript „analyseSizeChange“ im trpc-Quellcode.

Diese Datei hat die folgenden Funktionen:

1. Funktion „analysiereSizeChange“

2. Funktion Analyse

3. Geben Sie GitHubLogType

ein 4. Geben Sie GitHubLogOptions

ein 5. Funktion logNewModule

6. Funktion logDifference

7. Funktion logGithubMessage

8. Funktionsunterschied

9. Funktion „resolveJsonPaths“

10. FunktionsstreifenAnsiEscapes

11. FunktionsformatGithubOptions

12. FunktionsformatGithubMessage

analyzeSizeChange script in tRPC source code

Die wichtigste Funktion hier ist „analysateSizeChange“, da sie eine Funktion namens „onAnalysis“ hat.

export default function analyzeSizeChange(packageDir: string) {
 let analyzePluginIterations = 0;
 return analyze({
 summaryOnly: process.env.CI ? undefined : true,
 skipFormatted: process.env.CI ? true : undefined,
 onAnalysis: (analysis) => {
 …
 // calls logDifference
 if (prevModule) {
 logDifference(
 `Module '${module.id}'`,
 prevModule.size,
 module.size,
 );
 } else {
 logNewModule(module.id, module.size);
 }
 …
 })
}
Nach dem Login kopieren

logDifference und logNewModule befinden sich in derselben Datei und sind am gleichen Ort. Dies dient der Lesbarkeit und Wiederverwendbarkeit.

logNewModule:

function logNewModule(name: string, size: number) {
 if (size < ABSOLUTE_BYTE_CHANGE_THRESHOLD) {
   return;
 }
 const type = 'notice';
 const options = {
   title: `New Module (${size} bytes in ${name})`,
 };
 const message = `${name} size: ${size} bytes`;
 logGithubMessage(type, message, options);
}
Nach dem Login kopieren

logNewModule ruft eine Funktion namens logGithubMessage auf, die sich danach irgendwo am Ende derselben Datei befindet

Funktion.

logDifference:

function logDifference(name: string, before: number, after: number) {
 const change = difference(before, after);
 if (
   change.absolute < ABSOLUTE_BYTE_CHANGE_THRESHOLD &&
   change.percent < PERCENT_CHANGE_THRESHOLD
 ) {
   return;
 }
 const type = 'error';
 const options = {
   title: `Important Size Change (${change.absolute} bytes in ${name})`,
 };
 const message = `${name} size change: ${
   change.absolute
 } bytes (${change.percent.toFixed(2)}%)`;
 logGithubMessage(type, message, options);
}
Nach dem Login kopieren

logDifference ruft logGithubMessage- und Differenzfunktionen auf. An diesem Punkt können wir sehen, dass die Funktionshierarchie ist

Von oben nach unten werden Kernfunktionen höher eingestuft, während Einzelverantwortungsfunktionen niedriger eingestuft werden.

logGithubMessage

function logGithubMessage(
 type: GitHubLogType,
 message: string,
 options: GitHubLogOptions = {},
) {
 console.log(
   stripAnsiEscapes(
   `::${type} ${formatGithubOptions(options)}::${formatGithubMessage(
   message,
   )
}`,
),
 );
}
Nach dem Login kopieren

logGithubMessage verwendet drei Funktionen – stripAnsiEscapes, formatGithubOptions und formatGithubMessage.

Über uns:

Bei Thinkthroo studieren wir große Open-Source-Projekte und stellen Architekturführer zur Verfügung. Wir haben mit Rückenwind resubale Komponenten entwickelt, die Sie in Ihrem Projekt nutzen können. Wir bieten Next.js-, React- und Node-Entwicklungsdienste an.

Buchen Sie einen Termin mit uns, um Ihr Projekt zu besprechen.

analyzeSizeChange script in tRPC source code

analyzeSizeChange script in tRPC source code

Referenzen:

1. https://github.com/trpc/trpc/blob/next/scripts/analyzeSizeChange.ts



Das obige ist der detaillierte Inhalt vonanalysierenSizeChange-Skript im tRPC-Quellcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!