AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

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

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

安裝 Inquirer.js

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

npm install inquirer

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

yarn add inquirer

快速上手

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

豐富的問題類型

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

輸入(Input)

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

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

密碼(Password)

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

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

確認(Confirm)

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

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

列表(List)

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

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

下拉列表(Expand)

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

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

編輯器(Editor)

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

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

處理用戶的回答

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

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

動態提問

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

裝飾你的命令行

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

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

和其他 Node.js 工具一起玩

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • 一加Ace2 Pro真機揭曉 鈦空灰配色質感拉滿

    終于,在經過了幾波預熱之后,一加Ace2 Pro的外觀真機圖在網上出現了。還是博主數碼閑聊站曝光的,這次的外觀設計還是延續了一加11的方案,只是細節上有了調整,例如新加入了鈦空灰
  • 從 Pulsar Client 的原理到它的監控面板

    背景前段時間業務團隊偶爾會碰到一些 Pulsar 使用的問題,比如消息阻塞不消費了、生產者消息發送緩慢等各種問題。雖然我們有個監控頁面可以根據 topic 維度查看他的發送狀態,
  • 為什么你不應該使用Div作為可點擊元素

    按鈕是為任何網絡應用程序提供交互性的最常見方式。但我們經常傾向于使用其他HTML元素,如 div span 等作為 clickable 元素。但通過這樣做,我們錯過了許多內置瀏覽器的功能。
  • 騰訊蓋樓,字節拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之“想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!”曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 阿里大調整

    來源:產品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的“征求意見版”:1、取消P序列
  • 造車兩年股價跌六成,小米的估值邏輯變了嗎?

    如果從小米官宣造車后的首個交易日起持有小米集團的股票,那么截至2023年上半年最后一個交易日,投資者將浮虧59.16%,同區間的恒生科技指數跌幅為52.78%
  • iQOO Neo8 Pro即將開售:到手價3099元起 安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更
  • iQOO Neo8系列或定檔5月23日:首發天璣9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經上市便受到了用戶的廣泛關注。在時隔半年后,
  • 回歸OPPO兩年,一加贏了銷量,輸了品牌

    成為OPPO旗下主打性能的先鋒品牌后,一加屢創佳績。今年618期間,一加手機全渠道銷量同比增長362%,憑借一加 11、一加 Ace 2、一加 Ace 2V三款爆品,一加
Top