成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Node.js 中的交互式命令行:玩轉(zhuǎn) Inquirer.js

開發(fā) 前端
inquirer.js? 是一個功能超群的庫,能讓你的命令行工具變得既強大又用戶友好。無論是簡單的數(shù)據(jù)收集,還是復(fù)雜的多步驟交互,?inquirer.js? 都能幫你搞定。

嘿,會Node.js 的小伙伴們!今天咱們來聊聊一個超級實用的 Node.js 庫——inquirer.js。如果你想要讓你的命令行工具變得交互式,那這個庫絕對是你的不二之選。它能讓你輕松創(chuàng)建出美觀、易用的文本界面,讓用戶的輸入體驗更上一層樓。

安裝 Inquirer.js

安裝起來也是分分鐘的事,用 npm 或 yarn 都可以:

npm install inquirer

或者

yarn add inquirer

快速上手

安裝完了,咱們就可以開始玩耍了。先來個簡單的示例,看看 inquirer.js 是怎么用的:

const inquirer = require('inquirer');

const questions = [
{
   type: 'input',
   name: 'username',
   message: '嘿,你叫啥呀?',
},
{
   type: 'password',
   name: 'password',
   message: '密碼悄悄告訴我:',
},
];

inquirer.prompt(questions).then(answers => {
 console.log('用戶名:', answers.username);
 console.log('密碼:', answers.password);
});

這段代碼里,咱們定義了兩個問題:用戶名和密碼。type 參數(shù)告訴 inquirer.js 我們想要的輸入類型,name 是問題的答案名稱,message 是咱們要問用戶的問題。

豐富的問題類型

inquirer.js 提供了一大堆問題類型,滿足各種不同的需求:

輸入(Input)

就是普通的文本輸入。

{
 type: 'input',
 name: 'name',
 message: '你的名字是啥?',
}

密碼(Password)

和輸入一樣,但輸入的內(nèi)容不會顯示出來。

{
 type: 'password',
 name: 'password',
 message: '密碼多少呀?',
}

確認(Confirm)

用戶可以通過輸入 y 或 n 來回答“是”或“否”。

{
 type: 'confirm',
 name: 'continue',
 message: '咱們繼續(xù)嗎?',
}

列表(List)

讓用戶從列表里挑一個。

{
 type: 'list',
 name: 'theme',
 message: '選個主題唄:',
 choices: ['亮堂的', '暗夜的', '自定義的'],
}

下拉列表(Expand)

下拉列表,用戶可以用方向鍵選擇多個選項。

{
 type: 'expand',
 name: 'abilities',
 message: '超能力選哪個?',
 choices: [
  {
     key: 'p',
     name: '力大無窮',
     value: 'power',
  },
  {
     key: 's',
     name: '快如閃電',
     value: 'speed',
  },
   // 更多選項...
],
}

編輯器(Editor)

這個厲害了,讓用戶在外部編輯器里寫東西。

{
  type: 'editor',
  name: 'bio',
  message: '來,寫個自我介紹:',
}

處理用戶的回答

inquirer.prompt() 方法返回一個 Promise,用戶一提交答案,Promise 就會帶著所有答案的對象來解析。你可以拿這些答案去做各種酷炫的事。

inquirer.prompt(questions).then(answers => {
  // 用 answers 對象干點啥
  console.log('用戶名:', answers.username);
});

動態(tài)提問

有時候,你可能想問的問題取決于用戶之前的回答。inquirer.js 支持這種智能模式,用 when 屬性就能搞定。

const questions = [
  {
    type: 'confirm',
    name: 'hasAccount',
    message: '有賬戶不?',
  },
  {
    type: 'input',
    name: 'username',
    message: '用戶名是啥?',
    when: answers => answers.hasAccount
  },
  {
    type: 'input',
    name: 'email',
    message: '郵箱地址呢?',
    when: answers => !answers.hasAccount
  }
];

在這個例子里,用戶名的輸入框會不會顯示,取決于用戶對 hasAccount 的回答。

裝飾你的命令行

inquirer.js 還讓你能通過 prefix 屬性來加個前綴,或者用 transformer 函數(shù)來美化顯示給用戶的答案。

{
  type: 'input',
  name: 'name',
  message: '叫啥?',
  prefix: '稱呼:',
  transformer: input => `你好啊,${input}!`,
}

和其他 Node.js 工具一起玩

inquirer.js 可以和其他 Node.js 工具一起用,比如和 cross-spawn 模塊搭配,根據(jù)用戶的回答執(zhí)行不同的命令。

const { spawn } = require('cross-spawn');

inquirer.prompt([
  {
    type: 'list',
    name: 'action',
    message: '想干點啥?',
    choices: ['裝點依賴', '跑個測試', '撤了'],
  },
]).then(answers => {
  const command = answers.action === '裝點依賴' ? 'npm install' : 'npm test';
  spawn.sync(command, [], { stdio: 'inherit' });
});

總結(jié)

inquirer.js 是一個功能超群的庫,能讓你的命令行工具變得既強大又用戶友好。無論是簡單的數(shù)據(jù)收集,還是復(fù)雜的多步驟交互,inquirer.js 都能幫你搞定。今天咱們學(xué)了 inquirer.js 的基本用法,現(xiàn)在你應(yīng)該對這個庫有個大概的了解了。

責(zé)任編輯:武曉燕 來源: 科學(xué)隨想錄
相關(guān)推薦

2019-01-03 09:06:55

Node.js命令行工具 前端

2015-07-15 10:32:44

Node.js命令行程序

2021-04-01 13:25:46

Node命令工具

2017-03-22 11:32:17

Node.js單元測試

2011-09-08 10:32:27

Node.js

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2021-05-21 09:36:42

開發(fā)技能代碼

2016-08-11 14:02:02

NodeJS前端

2020-04-15 15:48:03

Node.jsstream前端

2024-01-05 08:49:15

Node.js異步編程

2017-03-19 16:40:28

漏洞Node.js內(nèi)存泄漏

2017-03-20 13:43:51

Node.js內(nèi)存泄漏

2020-05-29 15:33:28

Node.js框架JavaScript

2018-05-08 08:35:34

LinuxDocker 容器管理器

2012-02-03 09:25:39

Node.js

2021-12-25 22:29:57

Node.js 微任務(wù)處理事件循環(huán)

2011-09-08 13:46:14

node.js

2011-11-01 10:30:36

Node.js

2011-09-02 14:47:48

Node
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品日日夜夜 | 天天干天天插 | 亚洲欧美日韩中文字幕一区二区三区 | 91网站在线观看视频 | 91影片| 91精品国产91久久久久久 | 日日摸日日碰夜夜爽2015电影 | 国产美女在线精品免费 | 成人在线免费视频 | 欧美午夜影院 | 2019天天操 | 久久99国产精一区二区三区 | 精品一区在线免费观看 | 日韩免费在线 | 国产精品一码二码三码在线 | 亚洲第1页 | 精品久久久久久亚洲综合网 | 一片毛片 | 在线观看涩涩视频 | 亚洲欧美第一视频 | 四虎成人在线播放 | 天堂中文在线播放 | 99爱国产| 四季久久免费一区二区三区四区 | 成人精品视频99在线观看免费 | 亚洲一区久久久 | 国产乱码精品一区二区三区五月婷 | 神马久久久久久久久久 | 天堂久久久久久久 | 欧美精品二区 | 午夜精品久久久久久久久久久久 | 婷婷开心激情综合五月天 | 国产精品国产三级国产aⅴ无密码 | 成人日韩av | 久久国产日韩欧美 | 日韩视频三区 | 欧美激情视频网站 | 国产一区二区中文字幕 | av一二三区 | 日本成人二区 | caoporn国产|