广告
返回顶部
首页 > 资讯 > 精选 >怎么使用node开发一个mycli命令行工具
  • 958
分享到

怎么使用node开发一个mycli命令行工具

2023-07-02 00:07:32 958人浏览 薄情痞子
摘要

这篇文章主要介绍了怎么使用node开发一个mycli命令行工具的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用node开发一个mycli命令行工具文章都会有所收获,下面我们一起来看看吧。初始化首先要确保电

这篇文章主要介绍了怎么使用node开发一个mycli命令行工具的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用node开发一个mycli命令行工具文章都会有所收获,下面我们一起来看看吧。

初始化

首先要确保电脑上有node.js的环境

命令行执行下面代码,初始化一个package.JSON文件

npm init -y

此时,命令行执行mycli 肯定会报错。

怎么使用node开发一个mycli命令行工具

配置自定义命令

package.json 添加bin字段,关联mycli命令

  • 每一条命令对应一个可执行文件

  "bin": {    "mycli": "./test.js"  },
  • 新建 /test.js文件

console.log("mycli命令执行成功");
  • 需要install安装命令,但是项目还没有发布到npm,所以暂时先用npm link命令,把mycli命令关联到全局。

此时命令行再执行 mycli就不会再报错。

怎么使用node开发一个mycli命令行工具

脚本配置

test.js文件:

console.log("mycli命令执行成功");

然后再执行 mycli,此时会出现一个提示错误的弹窗

怎么使用node开发一个mycli命令行工具

这是因为,执行mycli命令的时候相当于让计算机执行了这个文件,而计算机系统是无法直接执行js文件的,这就需要我们在脚本代码第一行加入一个配置,指定计算机上的node.js程序来执行这个js脚本文件。

#!/usr/bin/env node

由于更改了执行环境,需要删除之前link到的文件,文件位置可能是C:\Program Files\nodejs\node_modules,找到mycli删除,然后再重新执行npm link

现在控制台再来执行mycli,可以看到控制台正确打印。

相关工具包的使用

  • Chalk 命令行输出五颜六色的字体

  • Ora 加载中loading的效果,类似的还有progress库

  • commander 设计命令

  • inquirer 交互功能(如:提问...)

Chalk

  • 安装

npm install chalk@4.1.2 -S
  • 使用 test.js

const chalk = require("chalk");// chalk// const hello = chalk.red("hello");// const hello = chalk.blue.bgRed("hello");// const hello = chalk.blue.bgYellow("hello");const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("hello");console.log(hello);

怎么使用node开发一个mycli命令行工具

Ora

  • 安装

npm install ora@4.0.3 -S
  • 使用 test.js

const ora = require("ora");// oraconst spinner = ora({  text: "安装中..."});spinner.start();setTimeout(() => {  // spinner.stop();  spinner.succeed("安装成功");  // console.log("安装成功");}, 2000)
  • 常用api

    • start 开始加载

    • stop 停止加载

    • succeed 结束加载并带有成功的样式

commander

开发中经常使用的命令,如Vue -V git --version vue create等命令,想要实现这样的命令需要用到commander这个库。

使用的命令后面带的-V --help 等,可以理解为是命令的参数,那么我们就需要获取到这些参数,通过判断参数的不同来处理不同的事件。

那在node环境中,可以通过process.argv来获取到这个参数。而commander库,帮助我们封装好了一些方法,不用我们自己去判断用户输入携带的指令是什么。

  • 安装

npm install commander@8.2.0 -S
  • 使用

const commander = require("commander");// ...commander.parse(process.argv); // 放在后面

安装完成之后,commander会自动提供给我们一些命令,如--help,下面来测试一下:

mycli --help
  • 提供了设置版本号的方法

commander.version("1.0.0");

执行 mycli -V可以看到控制台打印了 1.0.0版本号。

自定义指令方法

commander.option(指令名, 描述, 回调函数)

  • 把上面写过的一些功能配置到--init指令:

commander.option("--init", "this is init", () => {  // chalk  // const hello = chalk.red("hello");  // const hello = chalk.blue.bgRed("hello");  // const hello = chalk.blue.bgYellow("hello");  const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("hello");  console.log(hello);  // ora  const spinner = ora({    text: "安装中..."  });  spinner.start();  setTimeout(() => {    // spinner.stop();    spinner.succeed("安装成功");    // console.log("安装成功");  }, 1000)})

现在执行mycli --init测试:

  • 在指令中传递参数的写法

commander.option("--number <num>", "log a number", (num) => {  console.log(num);})

<参数名>表示必传的参数,[参数名]表示非必传的参数。控制台输入mycli --number 100回车,可以看到会输出100

自定义命令方法

commander.command("create <projectName>").action((projectName)=>{  console.log(projectName);})

执行 mycli create xx 回车,控制台可以看到 输出了xx

查看帮助

执行 mycli --help,可以看到我们刚才配置的指令和命令都出现在了帮助列表里。

怎么使用node开发一个mycli命令行工具

inquirer

  • 安装

npm install inquirer -S
  • prompt提问的方法

  inquirer.prompt([    {      type: "input",      name: "username",      message: "请输入用户名:"    }  ]).then((answer)=>{  })

type表示问题的类型,取值可能是:input, number, passWord, editor等。

answer{username: 输入的值}

  • type是输入类型的 input

const inquirer = require("inquirer");commander.command("add user").action(() => {  inquirer.prompt([    {      type: "input",      name: "username",      message: "请输入用户名:"    }  ]).then((answer) => {    console.log(answer);  })})
  • type是判断类型的 confirm

commander.command("testcon").action(() => {  inquirer.prompt([    {      type: "confirm",      name: "age",      message: "是否大于18岁?"    }  ]).then((answer) => {    console.log(answer);  })})

输入yn来进行判断。

怎么使用node开发一个mycli命令行工具

  • type是单选类型 list

commander.command("testlist").action(() => {  inquirer.prompt([    {      type: "list",      name: "lib",      message: "选择用到的框架:",      choices: [        "vue2",        "vue3",        "React",        "svelte",      ]    }  ]).then((answer) => {    console.log(answer);  })})

执行 mycli testlist 命令:

怎么使用node开发一个mycli命令行工具

下载模板

  • download-git-repo是一个拉取代码的工具。

  • 安装

npm install download-git-repo@3.0.2 -S
  • 使用

const downgit = require("download-git-repo");downgit("GitHub:konGCodes/vue3-vant", downUrl, { clone: false }, function (err) {    console.log(err)})

downgit方法里面的第一个参数理解为在github上面下载kongcodes用户的vue3-vant项目模板。第二个参数downUrl 为要将模板下载到什么目录下。第三个参数clone 是否要用git clone下载。第四个参数 为下载完成执行的一些事情。

  • 结合command方法使用

commander.command("create <projectName>").action((projectName) => {  const spinner = ora({    text: "正在下载https://github.com/kongcodes/vue3-vant..."  });  spinner.start();  fs.mkdirSync(`./${projectName}`);  const downUrl = `${process.cwd()}\\${projectName}`;  downgit("github:kongcodes/vue3-vant", downUrl, { clone: false }, function (err) {    if (err) throw err;    spinner.stop();    console.log(chalk.green("downgit success"));  })})

执行 mycli create pro 回车,会在当前目录下创建pro目录,下载vue3-vant模板到这个目录里。

关于“怎么使用node开发一个mycli命令行工具”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用node开发一个mycli命令行工具”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么使用node开发一个mycli命令行工具

本文链接: https://www.lsjlt.com/news/338625.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用node开发一个mycli命令行工具
    这篇文章主要介绍了怎么使用node开发一个mycli命令行工具的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用node开发一个mycli命令行工具文章都会有所收获,下面我们一起来看看吧。初始化首先要确保电...
    99+
    2023-07-02
  • 怎么从零开发一个node命令行工具
    本篇内容介绍了“怎么从零开发一个node命令行工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是命令...
    99+
    2022-10-19
  • 如何使用node开发一个命令行压缩工具
    本篇内容主要讲解“如何使用node开发一个命令行压缩工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用node开发一个命令行压缩工具”吧!对比来跟 Co...
    99+
    2022-10-19
  • 怎么使用Node.js写一个命令行工具
    这篇文章主要介绍“怎么使用Node.js写一个命令行工具”,在日常操作中,相信很多人在怎么使用Node.js写一个命令行工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Node.js写一个命令行工具...
    99+
    2023-06-17
  • 使用Rust开发命令行工具
    生成二进制文件,将其扔到环境变量的path下即可~ 用rust打造实时天气命令行工具[1] 找到合适的API 使用该api[2] 如请求 api.openweathermap.org/da...
    99+
    2023-08-30
    后端
  • 怎么开发一个node切换源小工具
    这篇文章主要介绍“怎么开发一个node切换源小工具”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么开发一个node切换源小工具”文章能帮助大家解决问题。思路1,调用命令 设置源npm c...
    99+
    2023-07-05
  • 如何使用node开发并发布一个cli工具
    这篇文章主要为大家展示了“如何使用node开发并发布一个cli工具”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用node开发并发布一个cli工具”这篇文...
    99+
    2022-10-19
  • Linux中怎么用Node.js写一个命令行工具
    本篇内容介绍了“Linux中怎么用Node.js写一个命令行工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2022-12-02
    linux node.js
  • 如何使用Node.js写一个命令行工具
    这篇文章给大家分享的是有关如何使用Node.js写一个命令行工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:操作系统需要为Linux1. 目标在命令行输入自己写的命令...
    99+
    2022-10-19
  • 怎么使用命令行sxstrace.exe工具
    今天小编给大家分享一下怎么使用命令行sxstrace.exe工具的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用命令行sx...
    99+
    2023-07-01
  • 基于node的cli工具怎么开发使用
    本篇内容介绍了“基于node的cli工具怎么开发使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景公司内部有维护admin和h6两套基础...
    99+
    2023-07-05
  • Node.js中怎么构建一个交互式命令行工具
    这期内容当中小编将会给大家带来有关Node.js中怎么构建一个交互式命令行工具,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。开始首先,创建一个新的 npm&nb...
    99+
    2022-10-19
  • 怎么使用Node.js和adb开发一个手机备份小工具
    这篇“怎么使用Node.js和adb开发一个手机备份小工具”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一...
    99+
    2022-10-19
  • Node.js中的package.json与cnpm命令行工具怎么使用
    这篇“Node.js中的package.json与cnpm命令行工具怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“N...
    99+
    2023-07-02
  • 使用php怎么实现一个命令行模式
    使用php怎么实现一个命令行模式?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php全集行模式,即php-cli,官方文档中称为: CLI SAPI(Serve...
    99+
    2023-06-06
  • 在Linux中怎么使用Alpine工具在命令行里访问Gmail
    本篇内容介绍了“在Linux中怎么使用Alpine工具在命令行里访问Gmail”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在这个帖子中,我...
    99+
    2023-06-13
  • 怎么使用命令行工具Graudit来查找代码中的安全漏洞
    这篇文章主要介绍“怎么使用命令行工具Graudit来查找代码中的安全漏洞”,在日常操作中,相信很多人在怎么使用命令行工具Graudit来查找代码中的安全漏洞问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2022-10-19
  • 怎么使用Jenkins自动化构建工具进行敏捷开发
    这篇“怎么使用Jenkins自动化构建工具进行敏捷开发”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Jenkins自...
    99+
    2023-06-29
  • Linux系统中怎么使用Node.js构建根据询问创建文件的命令行工具
    这篇文章主要介绍了Linux系统中怎么使用Node.js构建根据询问创建文件的命令行工具的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux系统中怎么使用Node.js构建根据询问创建文件的命令行工具文章都...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作