برنامه نویسی

در اینجا نحوه استفاده Nue.js رنگ ها را برای خروجی کنسول در CLI اعمال می کند.

در این مقاله ، ما بررسی خواهیم کرد که چگونه Nue.js رنگ ها را در سیاهههای مربوط به کنسول در CLI اعمال می کند.

شرح تصویر

من این عملکرد ورود به سیستم را در پرونده CLI.JS پیدا کردم.

async function printVersion() {
  log(`Nue ${version} ${colors.green('•')} ${getEngine()}`)
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

عملکرد ورود به سیستم از بسته ها/nuekit/src/upil.js وارد می شود

export function log(msg, extra="") {
  console.log(colors.green('✓'), msg, extra)
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

رنگ ها در اینجا چیست؟ عملکرد رنگ در همان پرونده تعریف شده است و کد زیر را دارد:

// رنگ های کنسول صادر کننده رنگهای const رنگ = عملکرد () {کدهای const = {قرمز: 31 ، سبز: 32 ، زرد: 33 ، آبی: 34 ، مگنتا: 35 ، سیان: 36 ، خاکستری: 90} const fns = {} const nocolor = process.env.no_color || ![key] = msg => nocolor؟ msg: `\ u001b[${codes[key]} m $ {msg} \ u001b[39m`
  }
  return fns
}()
Enter fullscreen mode

Exit fullscreen mode

I find this function really interesting because in the wild, OSS projects use Picocolors or chalk to apply colors to the console output in the CLI.

There’s codes and noColor is set to true if there is an env, NO_COLOR, or when the platform is ‘win32’ and TERM is set (not sure what this TERM is).

The trick is in the below code:

for (const key in codes) {
    fns[key] = msg => nocolor؟ msg: `\ u001b[${codes[key]} m $ {msg} \ u001b[39m`
  }
Enter fullscreen mode

Exit fullscreen mode

Here a \u001b[${codes[key]} m $ {msg} \ u001b[39m[39m است رشته الگوی معمولاً در JavaScript یا Typescript برای قالب بندی استفاده می شود خروجی کنسول با رنگ با استفاده از کدهای فرار ANSIبشر جالب

فهرست مطالب

درباره من:

سلام ، نام من رامو ناراسینگا است. من پروژه های بزرگ منبع باز را مطالعه می کنم و در مورد معماری پایگاه کد آنها و بهترین شیوه ها مطالب ایجاد می کنم و آن را از طریق مقاله ، فیلم به اشتراک می گذارم.

من برای کار روی پروژه های جالب باز هستم. برای من ایمیل بفرستید در ramu.narasinga@gmail.com

GitHub من-https://github.com/ramu-narasinga

وب سایت من – https://ramunarasinga.com

کانال یوتیوب من-https://www.youtube.com/@ramu-narasinga

پلت فرم یادگیری – https://thinkthroo.com

معماری پایگاه کد – https://app.thinkthroo.com/architecture

بهترین روشها-https://app.thinkthroo.com/best-practices

پروژه های درجه تولید-https://app.thinkthroo.com/production-prade-projects

منابع:

  1. https://github.com/nuejs/nue/blob/master/packages/nuekit/src/util.js#l47

  2. https://github.com/nuejs/nue/blob/master/packages/nuekit/src/util.js#l38

  3. https://github.com/nuejs/nue/blob/master/packages/nuekit/src/cli.js#l82

  4. https://www.npmjs.com/package/chalk

  5. https://www.npmjs.com/package/picocolors

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا