Maison > interface Web > js tutoriel > Package Logger dans les ensembles de modifications monorepo

Package Logger dans les ensembles de modifications monorepo

Barbara Streisand
Libérer: 2024-11-19 17:37:02
original
864 Les gens l'ont consulté

Le package CLI Changesets a une importation comme indiqué ci-dessous à la ligne 3 dans packages/cli/src/index.ts#L3

import { error } from "@changesets/logger";
Copier après la connexion

J'ai déjà vu ça, un package dédié juste pour logger, dans docusaurus-logger. À ce stade, je pense qu'il s'agit d'une norme/meilleure pratique courante dans l'ensemble de l'OSS d'avoir un package dédié pour disposer d'un enregistreur cohérent à utiliser dans la base de code.

Pourquoi un package dédié pour logger ?

Étant donné que les changesets sont un monorepo (tout comme Docusaurus), vous vous retrouverez à réutiliser des packages dans la base de code, mais imaginez un scénario dans lequel vous avez enregistré une erreur sur la CLI en utilisant une couleur. Pourquoi cette couleur est-elle sur l'image maintenant ? vous vous demandez peut-être. Lorsque vous utilisez un package CLI d'un projet Open Source tel que Next.js ou Docusaurus ou Changesets, les commentaires que vous recevez en interagissant avec CLI sont souvent colorés, par exemple, pour afficher une erreur, un avertissement ou des informations.

Logger package in changesets monorepo

J'ai choisi quelques fonctions des Changesets packages/cli/src/index.ts

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")));
}
Copier après la connexion

Alors, c'est quoi le PC ? Il s'agit du package picocolors importé en haut du fichier.

import pc from "picocolors";
Copier après la connexion

Avantages de l'utilisation d'un package d'enregistrement

Vous bénéficierez grandement de capacités de journalisation cohérentes dans votre base de code puisque vous définirez les journaux communs avec un codage couleur si nécessaire.

Vous trouverez ci-dessous un extrait de code extrait de 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)
 }`,
 ),
 );
}
Copier après la connexion

Docusaurus utilise de la craie pour colorer les chaînes de sortie CLI. J'ai mentionné Docusaurus et montré l'exemple pour démontrer comment un package est utilisé uniquement à des fins de journalisation.

À propos de nous :

Chez Thinkthroo, nous étudions les grands projets open source et fournissons des guides architecturaux. Nous avons développé des composants réutilisables, construits avec tailwind, que vous pouvez utiliser dans votre projet. Nous proposons des services de développement Next.js, React et Node.

Prenez rendez-vous avec nous pour discuter de votre projet.

Logger package in changesets monorepo

Références :

  1. https://github.com/changesets/changesets/blob/main/packages/logger/src/index.ts#L18

  2. https://github.com/changesets/changesets/blob/main/packages/cli/src/index.ts#L3

  3. https://github.com/changesets/changesets/tree/main/packages/logger

  4. https://github.com/facebook/docusaurus/blob/2b8ddb9260c54b7fdba4398bfdce64553a1356b0/packages/docusaurus-logger/src/index.ts

  5. https://www.npmjs.com/package/picocolors

  6. https://www.npmjs.com/package/chalk

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal