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 互動獲得的回饋經常是彩色的,例如,顯示錯誤、警告或資訊。
我從 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 開發服務。
與我們預約會面討論您的專案。
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.
以上是變更集 monorepo 中的記錄器包的詳細內容。更多資訊請關注PHP中文網其他相關文章!