Pakej pembalak dalam changeset monorepo

Barbara Streisand
Lepaskan: 2024-11-19 17:37:02
asal
776 orang telah melayarinya

Pakej CLI Changes mempunyai import seperti yang ditunjukkan di bawah pada baris 3 dalam packages/cli/src/index.ts#L3

import { error } from "@changesets/logger";
Salin selepas log masuk

Saya pernah melihat ini sebelum ini, pakej khusus hanya untuk pembalak, dalam docusaurus-logger. Pada ketika ini, saya percaya adalah standard biasa/amalan terbaik di seluruh OSS untuk mempunyai pakej khusus untuk mempunyai pembalak yang konsisten untuk digunakan merentas pangkalan kod.

Mengapa pakej khusus untuk pembalak?

Memandangkan changesets ialah monorepo (begitu juga Docusaurus), anda akan mendapati diri anda menggunakan semula pakej merentasi pangkalan kod tetapi bayangkan senario di mana anda melog masuk ralat ke CLI menggunakan warna. Kenapa warna ini dalam gambar sekarang? anda mungkin tertanya-tanya. Apabila anda menggunakan pakej CLI bagi mana-mana projek Sumber Terbuka seperti Next.js atau Docusaurus atau Changesets, maklum balas yang anda dapat daripada berinteraksi dengan CLI sering kali diwarnakan, sebagai contoh, untuk menunjukkan ralat atau amaran atau maklumat.

Logger package in changesets monorepo

Saya memilih beberapa fungsi daripada 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")));
}
Salin selepas log masuk

Jadi apa itu pc? Ia adalah pakej picocolors yang diimport di bahagian atas fail.

import pc from "picocolors";
Salin selepas log masuk

Faedah menggunakan pakej logger

Anda akan mendapat banyak manfaat daripada keupayaan pengelogan yang konsisten merentas pangkalan kod anda kerana anda akan menentukan log biasa dengan pengekodan warna jika diperlukan.

Di bawah ialah coretan kod yang dipilih daripada 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)
 }`,
 ),
 );
}
Salin selepas log masuk

Docusaurus menggunakan kapur untuk mewarnai rentetan keluaran CLI. Saya menyebut Docusaurus dan menunjukkan contoh untuk menunjukkan cara pakej digunakan semata-mata untuk tujuan pembalakan.

Tentang kami:

Di Thinkthroo, kami mengkaji projek sumber terbuka yang besar dan menyediakan panduan seni bina. Kami telah membangunkan Komponen boleh guna semula, dibina dengan tailwind, yang boleh anda gunakan dalam projek anda. Kami menawarkan perkhidmatan pembangunan Next.js, React dan Node.

Tempah mesyuarat dengan kami untuk membincangkan projek anda.

Logger package in changesets monorepo

Rujukan:

  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

Atas ialah kandungan terperinci Pakej pembalak dalam changeset monorepo. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan