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

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

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

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

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

安裝 Inquirer.js

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

npm install inquirer

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

yarn add inquirer

快速上手

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

豐富的問題類型

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

輸入(Input)

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

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

密碼(Password)

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

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

確認(Confirm)

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

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

列表(List)

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

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

下拉列表(Expand)

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

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

編輯器(Editor)

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

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

處理用戶的回答

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

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

動態提問

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

裝飾你的命令行

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

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

和其他 Node.js 工具一起玩

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

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

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

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

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

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

標簽:
  • 熱門焦點
Top