用node开发并发布一个cli工具

本文介绍了如何使用Node.js从零开始开发并发布一个命令行界面(CLI)工具,该工具用于查询天气。通过配置项目、创建bin文件、解析命令与参数、接入天气API,最终实现天气查询功能。文章还涵盖了使用加载提示和默认指令的优化,以及如何将CLI工具发布到npm仓库。
摘要由CSDN通过智能技术生成

cli本质是一种用户操作界面,根据一些指令和参数来与程序完成交互并得到相应的反馈,好的cli还提供帮助信息,我们经常使用的vue-cli就是一个很好的例子。本文将使用nodejs从头开发并发布一款cli工具,用来查询天气。

项目效果图如下:
在这里插入图片描述

配置项目

初始化一个项目:npm init -y
编写入口文件index.js:

module.exports = function(){
     
	console.log('welcome to Anderlaw weather') 
}
创建bin文件

bin目录下创建index:

#!/usr/bin/env node
require('../')()

package.json配置bin信息

{
   
  "name": "weather",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "bin": {
   
    "weather": "bin/index"
  }
}

然后在根目录(package.json同级)运行npm link,该操作会将该项目的模块信息和bin指令信息以软链接的形式添加到npm全局环境中:

  • C:\Users\mlamp\AppData\Roaming\npm\node_modules下多了一个模块链接
  • C:\Users\mlamp\AppData\Roaming\npm下多了个名为weather的cmd文件。

好处是可以更方便地进行本地调试。
然后我们打开终端输入:weather就会看到welcome to Anderlaw weather的log信息

解析命令与参数

此处我们使用minimist库来解析如:npm --save ,npm install 的参数。

安装依赖库 npm i -S minimist

使用process.argv获取完整的输入信息

使用minimist解析,例如:

weather today === args:{_:['today']}
weather -h === args:{ h:true }
weather --location 'china' === args:{location:'china'}

首先我们要实现查询今天和明天的天气,执行weather today[tomorrow]

const minimist = require('minimist');
module.exports = ()=>{
   
    const args = minimist(process.argv.slice(2));//前两个是编译器相关路径信息,可以忽略
    let cmd = args._[0];
    switch(cmd){
   
    	case 'today':
    	console.log('今天天气不错呢,暖心悦目!');
    	break;
    	case 'tomorrow':
    	console.log('明天下大雨,注意带雨伞!');
    	break;
    }
}

以上,如果我们输入weather 就会报错,因为没有取到参数.而且还没添加版本信息,因此我们还需要改善代码

const minimist = require('minimist')
const edition = require('./package.json').version
module.exports = ()=>{
   
    const args = minimist(process
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值