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";
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.
É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.
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"))); }
Alors, c'est quoi le PC ? Il s'agit du package picocolors importé en haut du fichier.
import pc from "picocolors";
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) }`, ), ); }
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.
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.
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
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!