【nodejs 命令行交互神器 - inquirer.js】

需求

大家在开发时,有时需要从命令行读取用户的输入,或者让用户选择。在nodejs中,这个怎么实现?

原生实现 ❌

process.stdin.setEncoding('utf8');process.stdin.on('readable', () => {let chunk;// 使用循环确保我们读取所有的可用输入while ((chunk = process.stdin.read()) !== null) {console.log(`你输入的数据是: ${chunk}`);}
});process.stdin.on('end', () => {process.stdout.write('结束输入.\\n');
});

可以看到 ,整体比较麻烦 ,而且可扩展性不强,如果不是单纯输入,而需要用户选择等,还要更多代码实现。

inquirer框架 ✅

输入


代码

import input from '@inquirer/input';(async () => {const answer = await input({ message: 'Enter your name' });console.log(answer)
})()

选择


代码

import select, { Separator } from '@inquirer/select';const answer = await select({message: 'Select a package manager',choices: [{name: 'npm',value: 'npm',description: 'npm is the most popular package manager',},{name: 'yarn',value: 'yarn',description: 'yarn is an awesome package manager',},new Separator(),{name: 'jspm',value: 'jspm',disabled: true,},{name: 'pnpm',value: 'pnpm',disabled: '(pnpm is not available)',},],
});

其还支持更多丰富的交互方式,可以在github上搜Inquirer.js查看其更多用法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

局域网内监控软件有哪些:五款好用的网络监控神器分享

面对员工这种现象怎么办? 监控电脑最有效! 局域网监控软件,你值得拥有! 要想轻松监控电脑,这几款局域网内监控软件不容错过!!! 一、域智盾软件 是一款专注于企业终端安全管理的软…

vue 中el-select联动 清空后无法点击选择后一个el-select

el-select选择器赋值为空后无法选中回显 原因: 焦点问题 背景:我是做了监听,因为需求要求选择街道后联动文号与项目名称,一个街道对应多个个文号与项目名称,因此当街道变化,需要清空之前的文号与项目…

流水灯效果探索与实现

在嵌入式系统或微控制器项目中,LED流水灯是一种常见的实验项目,它不仅能够展示基本的GPIO(通用输入输出)控制,还能通过不同的模式增加趣味性。本文将探讨四种不同的流水灯效果,并通过代码示例展示如何实现它…

Node.js -- 会话控制

文章目录 1. 会话介绍2. cookie 相关操作2.1 cookie 设置2.2 删除 cookie2.3 获取cookie 3. session 相关操作4. cookie 和session 的区别5. 补充知识 -- CSRF跨站请求伪造6. token 1. 会话介绍 所谓会话控制就是对会话进行控制 HTTP是一种无状态的协议,它没有办法…

中职大数据专业介绍:大数据技术应用

近年来,人工智能在经济发展、社会进步、国际政治经济格局等方面已经产生重大而深远的影响。规划纲要对“十四五”及未来十余年我国人工智能的发展目标、核心技术突破、智能化转型与应用,以及保障措施等多个方面都作出了部署。 据2020年全国教育事业发展统…

100条常见的c语言代码汇总上篇2(类型转换错误,忽略返回值,浮点数精度问题,逻辑错误,指针操作错误)

11. 类型转换错误 在C语言中&#xff0c;不恰当的类型转换可能导致数据丢失或程序行为异常。特别是在涉及不同大小或符号的整数类型&#xff0c;或者整数与浮点数之间的转换时&#xff0c;要特别小心。 代码案例&#xff1a; #include <stdio.h> int main() {unsigned …

两重惊喜!奥特曼预告GPT-4和ChatGPT重大更新,Open AI要放大招

OpenAI在今天官宣13日&#xff08;下周一10点&#xff09;开启线上直播&#xff0c;将会展示全新的ChatGPT demo的演示以及GPT-4的重大更新&#xff01; OpenAI首席执行官Sam Altman在X上表示&#xff0c;这些的发布会&#xff0c;公司不会宣布下一代对话式人工智能GPT-5或人工…

ue引擎游戏开发笔记(37)——实现造成伤害

1.需求分析&#xff1a; 在游戏中已经能够射击&#xff0c;并且能得到实际的落点反馈&#xff0c;但本质上这种射击没有任何实际数值伤害&#xff0c;为射击添加实际的子弹伤害数值。 2.操作实现&#xff1a; 1.思路&#xff1a;ue本身函数FPointDamageEvent就可以解决&#x…

win11安装各银行的网银助手都无法打开,双击没反应?

大神贴 右键网银助手属性&#xff0c;在目标后面敲一下空格&#xff0c;输入**-runapp**&#xff0c;应用即可。 如图示例&#xff1a;

【HDFS】关于HDFS-17497:在commit block时更新quota

链接:https://github.com/apache/hadoop/pull/6765 Ticket标题:The number of bytes of the last committed block should be calculated into the file length。 HDFS里,一个在写入的文件可能包含多个commited状态的块。 但是计算文件大小的时候,最后一个commited block并…

英语写作中“特别(殊)的”“特定的”“具体的”special、particular、specific、concrete的用法

一、我们在学英语时special 这个单词出现频率高&#xff0c;耳濡目染&#xff0c;所以也爱用&#xff0c;其实有时候省掉special 显得语气平和&#xff0c;表达更地道。例如&#xff1a; We provide services for special people like the disabled. &#xff08;我们只服务残…

Vue3人员选择组件封装

一、组件介绍 人员组件在各系统的应用都是比较广泛的&#xff0c;因此可以将其封装为可配置的人员组件&#xff0c;根据不同角色权限显示对应的人员供选择&#xff0c;代码目前只是一部分&#xff0c;需要源码的私聊。 二、直接上代码 use.vue 父组件 <div class&q…

Git那些事-如何撤销暂存区的文件

在Git的操作中&#xff0c;有时在将本地仓库中已修改的文件添加到暂存区时&#xff0c;会出现添加了"错误"文件的情况&#xff08;这里的错误指的是这些文件我们并不需要上传到远程仓库&#xff09;。这就需要我们将添加到暂存区中"错误"的文件恢复到本地仓…

BUU-[极客大挑战 2019]Http

考察点 信息收集 http构造请求数据包 题目 解题步骤 参考文章&#xff1a;https://zhuanlan.zhihu.com/p/367051798 查看源代码 发现有一个a标签&#xff0c;但是οnclick"return false"就是点击后不会去跳转到Secret.php的页面 所以我就自己拼接url http://no…

【鱼眼+普通相机】相机标定

一、简介 本文提供了鱼眼及普通相机的标定python版源码,调用opencv的接口,原理为张正友标定法。这里不过多赘述,话不多说无套路直接上源码,亲测有效,搬走即用。 注: 需准备一个标定版,在此网站下载打印出来即可;例如12x8的棋盘格内角点为11x7.二 、源码 2.1 鱼眼相机…

音频—WAV格式及写入wav文件代码实现

1.RIFF规范 FIFF 是 Resource Interchange File Format&#xff08;资源交换文件格式&#xff09;的简称。RIFF 是一种文件格式规范&#xff0c;用于在计算机系统之间交换和存储多媒体资源。WAV 文件格式是 Microsoft 的 RIFF 规范的一个子集。 RIFF 规则定义了文件的结构和数…

【案例分享】校园服务小程序开发经验和主要功能,引领校园生活新方式

随着移动互联网的普及&#xff0c;学生们对于校园生活的需求也在不断增长。校园圈子、校园跑腿、校园外卖、校园服务等小程序等应用应运而生&#xff0c;为学生们提供了更加便捷、高效的生活方式。那么&#xff0c;如何开发一款能够满足学生需求的校园服务小程序呢&#xff1f;…

react18封装公共请求函数

如果里面要处理比如token过期&#xff0c;跳转登录这种情况的话&#xff0c;官方又说组件外不允许使用Hooks函数&#xff0c;这里可以这样做 使用redux 并新建一个store/index.ts import { configureStore, combineReducers } from reduxjs/toolkit import counterRouter fro…

JavaScript创建日期

创建日期 在JavaScript中创建日期有四种方法 ● 使用new Date() const now new Date(); console.log(now);● 直接输入月、日、年、时间 console.log(new Date(Aug 02 2024 18:05:41));● 也可以输入年月日 console.log(new Date(December 24, 2015));● 直接按照年、月、…

用于接收参数的几个注解

了解四种主要请求方法的传参格式 GET方法&#xff1a; 参数通常通过URL的查询字符串&#xff08;query string&#xff09;传递&#xff0c;形式为key1value1&key2value2。示例&#xff1a;http://example.com/api/resource?key1value1&key2value2 POST方法&#xf…