日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Node.js 中的交互式命令行:玩轉 Inquirer.js

來源: 責編: 時間:2024-04-26 17:33:38 178觀看
導讀嘿,會Node.js 的小伙伴們!今天咱們來聊聊一個超級實用的 Node.js 庫——inquirer.js。如果你想要讓你的命令行工具變得交互式,那這個庫絕對是你的不二之選。它能讓你輕松創建出美觀、易用的文本界面,讓用戶的輸入體驗更上

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

安裝 Inquirer.js

安裝起來也是分分鐘的事,用 npm 或 yarn 都可以:x6Z28資訊網——每日最新資訊28at.com

npm install inquirer

或者x6Z28資訊網——每日最新資訊28at.com

yarn add inquirer

快速上手

安裝完了,咱們就可以開始玩耍了。先來個簡單的示例,看看 inquirer.js 是怎么用的:x6Z28資訊網——每日最新資訊28at.com

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 參數告訴 inquirer.js 我們想要的輸入類型,name 是問題的答案名稱,message 是咱們要問用戶的問題。x6Z28資訊網——每日最新資訊28at.com

豐富的問題類型

inquirer.js 提供了一大堆問題類型,滿足各種不同的需求:x6Z28資訊網——每日最新資訊28at.com

輸入(Input)

就是普通的文本輸入。x6Z28資訊網——每日最新資訊28at.com

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

密碼(Password)

和輸入一樣,但輸入的內容不會顯示出來。x6Z28資訊網——每日最新資訊28at.com

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

確認(Confirm)

用戶可以通過輸入 y 或 n 來回答“是”或“否”。x6Z28資訊網——每日最新資訊28at.com

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

列表(List)

讓用戶從列表里挑一個。x6Z28資訊網——每日最新資訊28at.com

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

下拉列表(Expand)

下拉列表,用戶可以用方向鍵選擇多個選項。x6Z28資訊網——每日最新資訊28at.com

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

編輯器(Editor)

這個厲害了,讓用戶在外部編輯器里寫東西。x6Z28資訊網——每日最新資訊28at.com

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

處理用戶的回答

inquirer.prompt() 方法返回一個 Promise,用戶一提交答案,Promise 就會帶著所有答案的對象來解析。你可以拿這些答案去做各種酷炫的事。x6Z28資訊網——每日最新資訊28at.com

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

動態提問

有時候,你可能想問的問題取決于用戶之前的回答。inquirer.js 支持這種智能模式,用 when 屬性就能搞定。x6Z28資訊網——每日最新資訊28at.com

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 的回答。x6Z28資訊網——每日最新資訊28at.com

裝飾你的命令行

inquirer.js 還讓你能通過 prefix 屬性來加個前綴,或者用 transformer 函數來美化顯示給用戶的答案。x6Z28資訊網——每日最新資訊28at.com

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

和其他 Node.js 工具一起玩

inquirer.js 可以和其他 Node.js 工具一起用,比如和 cross-spawn 模塊搭配,根據用戶的回答執行不同的命令。x6Z28資訊網——每日最新資訊28at.com

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 是一個功能超群的庫,能讓你的命令行工具變得既強大又用戶友好。無論是簡單的數據收集,還是復雜的多步驟交互,inquirer.js 都能幫你搞定。今天咱們學了 inquirer.js 的基本用法,現在你應該對這個庫有個大概的了解了。x6Z28資訊網——每日最新資訊28at.com

x6Z28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-85867-0.htmlNode.js 中的交互式命令行:玩轉 Inquirer.js

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Rust 機器學習,一定要知道的這些庫,可以替代 Python 庫了

下一篇: 寫了個插件,一口氣解決項目中所有精度丟失問題!

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 昭苏县| 衡东县| 舒城县| 水城县| 靖江市| 且末县| 娄底市| 清水河县| 通河县| 新民市| 双柏县| 兴海县| 贵定县| 浮山县| 大荔县| 九龙坡区| 姜堰市| 潜江市| 开鲁县| 耒阳市| 邢台市| 洛宁县| 贵南县| 聂拉木县| 容城县| 吐鲁番市| 峨边| 东丽区| 金秀| 沙田区| 高台县| 合山市| 佛山市| 南阳市| 乌兰县| 昆明市| 交口县| 会东县| 鹤岗市| 益阳市| 珲春市|