>  기사  >  웹 프론트엔드  >  변경 세트 모노레포의 로거 패키지

변경 세트 모노레포의 로거 패키지

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 전반에 걸친 일반적인 표준/모범 사례라고 생각합니다.

로거 전용 패키지가 필요한 이유

changeset은 단일 저장소(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")));
}

그럼 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.