开发脚手架常用的JS库

本文介绍了Inquirer库,用于创建命令行交互界面,支持多种输入类型和自定义;ora库提供了终端加载动画功能;chalk.js则是一个用于命令行文字样式修改的工具,包括颜色、样式等。此外,还提及了npmlog日志管理工具,用于不同级别的日志输出和自定义样式。
摘要由CSDN通过智能技术生成

命令行交互 — Inquirer

Inquirer: 可以快速创建交互式的命令行用户界面,收集键盘输入的各种信息,并且能够自定义样式和流程,简化用户的操作流程。
提供多种交互类型如列表选择、输入框、确认框、单选框、多选框、编辑框等等,也支持一些定制功能,如输入掩码、编辑确认等。并且它支持 Promise 和 Async/Await 等编程方式,从而允许通过异步操作保持交互面板的工作流程。
使用文档

使用示例

const inquirer = require('inquirer');

inquirer
  .prompt([
    /* Pass your questions in here */
    {
      type: 'input',
      name: 'yourName',
      message: 'your name',
      default: 'liam',
      validate(val) {
        // 校验值
        return true
      }
    },
    {
      type: 'number',
      name: 'age',
      message: 'your age'
    },
    {
      type: 'confirm',
      name: 'isChicken',
      message: 'you are chicken?',
      default: true
    },
    {
      type: 'list',
      name: 'hobby',
      message: 'your hobby',
      default: 'rap',
      choices: [
        { name: '唱', value: 'sing' },
        { name: '跳', value: 'jump' },
        { name: 'rap', value: 'rap' }
      ]
    },
    {
      type: 'expand',
      name: 'project',
      message: 'your project',
      choices: [
        { key: 'B', value: 'bcp' },
        { key: 'I', value: 'ifs' }
      ]
    },
    {
      type: 'checkbox',
      name: 'projectMembers',
      message: 'choices your project members',
      choices: [
        { name: '嘟嘟', value: 'dd' },
        { name: '友友', value: 'yy' },
        { name: '芬芬', value: 'ff' }
      ]
    },
    {
      type: 'password',
      name: 'password',
      message: 'your password'
    },
    {
      type: 'editor',
      name: 'customValue',
      message: 'custom value'
    }
  ])
  .then((answers) => {
    // Use user feedback for... whatever!!
    console.log(answers)
  })
  .catch((error) => {
    if (error.isTtyError) {
      // Prompt couldn't be rendered in the current environment
    } else {
      // Something else went wrong
    }
  });

在这里插入图片描述

命令行loading — ora

ora 是一个用于创建终端加载动画的库,它可以在终端窗口中展示类似于“加载中”的动画。
使用文档

使用示例

const ora = require('ora');

// 创建一个实例,指定加载动画的文本提示
const spinner = ora('Loading data...').start();

// 模拟异步操作,可以将该部分替换为其他异步操作,例如读取文件或从网络中获取数据等
setTimeout(() => {
  spinner.color = 'yellow';
  spinner.text = 'Loading completed';
  spinner.succeed(); // 成功完成动画
}, 3000);

// 错误处理
setTimeout(() => {
  spinner.color = 'red';
  spinner.text = 'Loading failed';
  spinner.fail(); // 加载失败动画
}, 5000)

在这里插入图片描述在这里插入图片描述


命令行文字样式 — chalk

chalk.js是一个色彩输出工具库,可以实现命令行文字的颜色、背景颜色、加粗、下划线等样式的修改,同时也支持自定义样式。
使用文档

使用示例

const chalk = require('chalk');

// 在控制台中输出红色的 "Hello World!"
console.log(chalk.red('Hello World!'));

// 在控制台中输出带有背景颜色的蓝色文本
console.log(chalk.blue.bgYellow('Welcome to Chalk.js!'));

// 在控制台中输出斜体文本
console.log(chalk.italic('This is italic text.'));

// 在控制台中输出加粗文本
console.log(chalk.bold('This is bold text.'));

// 在控制台中输出绿色的 "Success" 文字,同时将其包装在方框内
console.log(chalk.green.bold.bgWhite('Success!', 'Done'));

// 在控制台中输出多种颜色的文本
console.log(chalk.red.bold('Error: ') + chalk.whiteBright.bgRed('Something went wrong.'));

// 支持多行文字
console.log(chalk.blue('这是一行蓝色的文本.\n') + chalk.green('这是一行绿色的文本.\n') + chalk.red('这是一行红色的文本.'));

在这里插入图片描述

命令行日志 — npmlog

npmlog.js是一个在 Node.js 环境下使用的日志管理工具,可以方便地输出各种信息,包括调试信息、错误信息、警告信息等。
只简单介绍,具体请看 官方文档

1.日志级别

  • silly:最低级别,用于输出无用信息,比如调试信息。
  • verbose:用于输出详细的信息,包括程序运行过程中的各种状态。
  • info:用于输出普通的信息,比如程序启动、停止等。
  • http:用于输出 HTTP 请求信息。
  • warn:用于输出警告信息,比如程序运行过程中的一些异常情况。
  • error:用于输出错误信息,比如程序运行过程中的一些错误。
  • silent:最高级别,用于禁止输出任何日志信息。
  // error
  log.error("Error message", "Hello world");
  // warn
  log.warn("Warning message", "Hello world");
  // info
  log.info("Information message", "Hello world");

在这里插入图片描述

设置日志级别
// 最低级别
log.level = "silly"
// 详细
log.level = "verbose"
// 最高级别
log.level = "silent"

2.自定义样式

样式属性
  • bold:加粗。
  • dim:降低亮度。
  • italic:斜体。
  • underline:下划线。
  • inverse:反色。
  • hidden:隐藏。
  • strikethrough:删除线。
  • fg:前景色,可以设置以下颜色值:black、red、green、yellow、blue、magenta、cyan、white、gray、grey、blackBright、redBright、greenBright、yellowBright、blueBright、magentaBright、cyanBright、whiteBright
  • bg:背景色,可以设置与前景色相同的颜色值。
自定义级别

可以通过log.addLevel()方法自定义日志级别并添加样式。比如,以下代码为 success 级别添加了绿色和加粗样式

log.addLevel('success', 2000, { fg: 'green', bold: true });
log.success("success", "Hello world!");

在这里插入图片描述

3.开头标题

log.heading,如果设置,则在每行的开头打印一个标题。

log.heading = "Liam";
log.info("info message", "Hello world!")

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值