首頁 > web前端 > js教程 > 主體

變更集 monorepo 中的記錄器包

Barbara Streisand
發布: 2024-11-19 17:37:02
原創
776 人瀏覽過

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 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")));
}
登入後複製

那什麼是電腦?它是在文件頂部導入的 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.

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

以上是變更集 monorepo 中的記錄器包的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板