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

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

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

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

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

安裝 Inquirer.js

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

npm install inquirer

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

yarn add inquirer

快速上手

安裝完了,咱們就可以開始玩耍了。先來個簡單的示例,看看 inquirer.js 是怎么用的:Yjy28資訊網——每日最新資訊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 是咱們要問用戶的問題。Yjy28資訊網——每日最新資訊28at.com

豐富的問題類型

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

輸入(Input)

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

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

密碼(Password)

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

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

確認(Confirm)

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

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

列表(List)

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

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

下拉列表(Expand)

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

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

編輯器(Editor)

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

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

處理用戶的回答

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

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

動態提問

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

裝飾你的命令行

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

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

和其他 Node.js 工具一起玩

inquirer.js 可以和其他 Node.js 工具一起用,比如和 cross-spawn 模塊搭配,根據用戶的回答執行不同的命令。Yjy28資訊網——每日最新資訊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 的基本用法,現在你應該對這個庫有個大概的了解了。Yjy28資訊網——每日最新資訊28at.com

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

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

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

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

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

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統將于今天下午正式登場,官方在發布會之前也已經正式給出了可升級的機型產品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • 自動化在DevOps中的力量:簡化軟件開發和交付

    自動化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動化工具和方法,DevOps團隊可以實現以下目標:消除手動和重復性任務。簡化流程。在整個軟件開發生命周期中實現更
  • 為什么你不應該使用Div作為可點擊元素

    按鈕是為任何網絡應用程序提供交互性的最常見方式。但我們經常傾向于使用其他HTML元素,如 div span 等作為 clickable 元素。但通過這樣做,我們錯過了許多內置瀏覽器的功能。
  • 中國家電海外掘金正當時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態LT(ID:LingTai_LT)2023年,出海市場戰況空前,中國創業者在海外紛紛摩拳擦掌,以期能夠把中國的商業模式、創業理念、戰略打法輸出海外,他們依
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 自研Exynos回歸!三星Galaxy S24系列將提供Exynos和驍龍雙版本

    年初,全新的三星Galaxy S23系列發布,包含Galaxy S23、Galaxy S23+和Galaxy S23 Ultra三個版本,全系搭載超頻版驍龍8 Gen 2,雖同樣采用臺積電4nm工藝制
  • iQOO 11S評測:行業唯一的200W標準版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,該機不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
  • 引領旗艦級影像能力向中端機普及 OPPO K11 系列發布 1799 元起

    7月25日,OPPO正式發布K系列新品—— OPPO K11 。此次 K11 在中端手機市場長期被忽視的影像板塊發力,突破性地搭載索尼 IMX890 旗艦大底主攝,支持 OIS
Top 主站蜘蛛池模板: 长治县| 大化| 孙吴县| 普兰店市| 济南市| 古蔺县| 堆龙德庆县| 新昌县| 黄陵县| 咸丰县| 墨竹工卡县| 大邑县| 保靖县| 鄂托克旗| 鲁甸县| 太原市| 星座| 嘉义市| 梧州市| 莱阳市| 大连市| 霍城县| 西华县| 静安区| 博爱县| 铜陵市| 福安市| 榆社县| 惠东县| 康乐县| 合水县| 嘉义县| 株洲市| 鄂托克旗| 鄂州市| 芦溪县| 通渭县| 沅江市| 定边县| 寻乌县| 井冈山市|