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

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

開發(fā) 前端
inquirer.js? 是一個功能超群的庫,能讓你的命令行工具變得既強大又用戶友好。無論是簡單的數(shù)據(jù)收集,還是復雜的多步驟交互,?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' });
});

總結

inquirer.js 是一個功能超群的庫,能讓你的命令行工具變得既強大又用戶友好。無論是簡單的數(shù)據(jù)收集,還是復雜的多步驟交互,inquirer.js 都能幫你搞定。今天咱們學了 inquirer.js 的基本用法,現(xià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技術

2015-03-10 10:59:18

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

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異步編程

2018-05-08 08:35:34

LinuxDocker 容器管理器

2021-12-25 22:29:57

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

2017-03-19 16:40:28

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

2017-03-20 13:43:51

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

2012-02-03 09:25:39

Node.js

2020-05-29 15:33:28

Node.js框架JavaScript

2011-09-08 13:46:14

node.js

2011-11-01 10:30:36

Node.js

2011-09-02 14:47:48

Node
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品一区 | 成人精品国产 | 久久久不卡网国产精品一区 | 91 久久 | 欧美成人一级 | 国产精品美女一区二区三区 | 欧美色性| 特级做a爰片毛片免费看108 | 欧美成人精品 | 国产精品高 | 91精品国产91久久久久久三级 | 精品婷婷| 国产二区精品视频 | 在线日韩视频 | 亚洲一区精品视频 | 亚洲精品综合 | 欧美日韩国产在线观看 | 亚洲国产一区二区三区 | 成人免费观看男女羞羞视频 | 亚洲精品一区二区在线观看 | 亚洲国产欧美精品 | 中文字幕av第一页 | 丝袜一区二区三区 | 久草视频观看 | 天天综合国产 | 久久91av| 91久久综合 | 欧美一区二区在线观看 | 91黄色片免费看 | 国产精品美女久久久久aⅴ国产馆 | 精品视频在线一区 | 久久久久久久久久久久久91 | 午夜激情免费 | 性欧美精品一区二区三区在线播放 | 国产在线精品一区 | 黄色一级毛片 | 亚洲欧美日韩精品久久亚洲区 | 国产一区二区精品在线观看 | 亚洲国产中文字幕 | 久久亚洲一区二区三区四区 | 久久网亚洲 |