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.ts
https://www.npmjs.com/package/picocolors
https://www.npmjs.com/package/chalk
以上是变更集 monorepo 中的记录器包的详细内容。更多信息请关注PHP中文网其他相关文章!