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와 상호 작용하여 얻는 피드백은 색상이 지정되는 경우가 많습니다(예: 오류, 경고 또는 정보 표시).
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 개발 서비스를 제공합니다.
귀하의 프로젝트에 대해 논의하려면 회의를 예약하세요.
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
위 내용은 변경 세트 모노레포의 로거 패키지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!