ホームページ  >  記事  >  ウェブフロントエンド  >  変更セットモノリポジトリのロガーパッケージ

変更セットモノリポジトリのロガーパッケージ

Barbara Streisand
Barbara Streisandオリジナル
2024-11-19 17:37:02777ブラウズ

Changesets CLI パッケージには、packages/cli/src/index.ts#L3 の行 3 に以下に示すようなインポートがあります

import { error } from "@changesets/logger";

私はこれを以前に見たことがあります。これは、docusaurus-logger のロガー専用のパッケージです。現時点では、コードベース全体で使用できる一貫したロガーを備えた専用のパッケージを用意することが、OSS 全体にわたる共通の標準/ベスト プラクティスであると考えています。

ロガー専用パッケージが必要な理由

チェンジセットはモノリポジトリであるため (Docusaurus も同様)、コードベース全体でパッケージを再利用することになるでしょうが、色を使用して CLI にログオンしたエラーのシナリオを想像してみてください。なぜ今この色が写っているのでしょうか?と疑問に思うかもしれません。 Next.js、Docusaurus、Changesets などのオープン ソース プロジェクトの CLI パッケージを使用する場合、CLI との対話から得られるフィードバックは、たとえば、エラー、警告、情報を表示するために色付けされることがよくあります。

Logger package in changesets monorepo

Changesets package/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")));
}

では、PC とは何でしょうか?ファイルの先頭でインポートされた picocolors パッケージです。

import pc from "picocolors";

ロガー パッケージを使用する利点

必要に応じてカラーエンコーディングを使用して共通ログを定義するため、コードベース全体で一貫したロギング機能から大きなメリットが得られます。

以下は 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 はチョークを使用して CLI 出力文字列に色を付けます。 Docusaurus について言及し、パッケージが純粋にログ記録の目的でどのように使用されるかを示す例を示しました。

私たちについて:

Thinkthroo では、大規模なオープンソース プロジェクトを研究し、アーキテクチャ ガイドを提供しています。私たちは、tailwind で構築された、プロジェクトで使用できる再利用可能なコンポーネントを開発しました。 Next.js、React、Node 開発サービスを提供します。

プロジェクトについて話し合うためのミーティングを予約してください。

Logger package in changesets monorepo

参考文献:

  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

以上が変更セットモノリポジトリのロガーパッケージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。