Heim > Artikel > Web-Frontend > Logger-Paket im Changesets-Monorepo
Das Changesets-CLI-Paket hat einen Import, wie unten in Zeile 3 in packets/cli/src/index.ts#L3 gezeigt
import { error } from "@changesets/logger";
Ich habe das schon einmal gesehen, ein spezielles Paket nur für Logger, in docusaurus-logger. Zum jetzigen Zeitpunkt glaube ich, dass es im gesamten OSS ein allgemeiner Standard/Best Practice ist, ein dediziertes Paket zu haben, um über einen konsistenten Logger zu verfügen, der in der gesamten Codebasis verwendet werden kann.
Da es sich bei Changesets um ein Monorepo handelt (so auch bei Docusaurus), werden Sie feststellen, dass Sie Pakete in der gesamten Codebasis wiederverwenden, aber stellen Sie sich ein Szenario vor, in dem Sie einen Fehler mithilfe einer Farbe an der CLI protokolliert haben. Warum ist diese Farbe jetzt im Bild? Sie fragen sich vielleicht. Wenn Sie ein CLI-Paket eines Open-Source-Projekts wie Next.js, Docusaurus oder Changesets verwenden, wird das Feedback, das Sie durch die Interaktion mit der CLI erhalten, häufig farbig dargestellt, um beispielsweise einen Fehler, eine Warnung oder Informationen anzuzeigen.
Ich habe einige Funktionen aus Changesets packets/cli/src/index.ts ausgewählt
export function error(…args: Array<any>) { console.error(format(args, pc.red("error"))); } export function info(…args: Array<any>) { console.info(format(args, pc.cyan("info"))); } export function success(…args: Array<any>) { console.log(format(args, pc.green("success"))); }
Was ist also ein PC? Es handelt sich um ein Picocolors-Paket, das oben in der Datei importiert wird.
import pc from "picocolors";
Sie werden von konsistenten Protokollierungsfunktionen in Ihrer gesamten Codebasis erheblich profitieren, da Sie die gemeinsamen Protokolle bei Bedarf mit Farbcodierung definieren.
Unten ist ein Codeausschnitt von Docusuarus.
function warn(msg: unknown, …values: InterpolatableValue[]): void { console.warn( chalk.yellow( `${chalk.bold('[WARNING]')} ${ values.length === 0 ? stringify(msg) : interpolate(msg as TemplateStringsArray, …values) }`, ), ); }
Docusaurus verwendet Kreide, um die CLI-Ausgabezeichenfolgen einzufärben. Ich habe Docusaurus erwähnt und das Beispiel gezeigt, um zu demonstrieren, wie ein Paket ausschließlich zu Protokollierungszwecken verwendet wird.
Bei Thinkthroo studieren wir große Open-Source-Projekte und stellen Architekturführer zur Verfügung. Wir haben mit Rückenwind wiederverwendbare 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.
https://github.com/changesets/changesets/blob/main/packages/logger/src/index.ts#L18
https://github.com/changesets/changesets/blob/main/packages/cli/src/index.ts#L3
https://github.com/changesets/changesets/tree/main/packages/logger
https://github.com/facebook/docusaurus/blob/2b8ddb9260c54b7fdba4398bfdce64553a1356b0/packages/docusaurus-logger/src/index.ts
https://www.npmjs.com/package/picocolors
https://www.npmjs.com/package/chalk
Das obige ist der detaillierte Inhalt vonLogger-Paket im Changesets-Monorepo. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!