63 # commander 的配置

news2024/11/17 14:47:18

初始化配置文件

新建文件夹 63,执行 npm init -y

在这里插入图片描述

修改配置文件

{
    "name": "kaimo-http-server",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "keywords": [
        "http-server"
    ],
    "author": "kaimo",
    "license": "MIT",
    "bin": {
        "kaimo-http-server": "./bin/www.js"
    }
}

新建 bin 文件夹,下面添加 www.js

#! /usr/bin/env node

console.log("进入 bin");

使用下面命令添加全局命令

npm link

然后就可以执行我们的命令

kaimo-http-server

在这里插入图片描述

使用 commander

https://github.com/tj/commander.js/blob/HEAD/Readme_zh-CN.md

npm install commander@5.1.0

在这里插入图片描述

自定义配置项:

const config = {
    // 配置端口号
    port: {
        option: "-p, --port <val>",
        description: "set your server port",
        usage: "kaimo-http-server --port 3000",
        default: 3000
    },
    // 配置目录
    directory: {
        option: "-d, --directory <val>",
        description: "set your start directory",
        usage: "kaimo-http-server --directory D:",
        default: process.cwd()
    },
    // 配置主机名
    host: {
        option: "-h, --host <val>",
        description: "set your hostname",
        usage: "kaimo-http-server --host 127.0.0.1",
        default: "localhost"
    }
};

module.exports = config;

www.js 添加 commander 相关代码

#! /usr/bin/env node

const program = require("commander");
const { version } = require("../package.json");
const config = require("./config.js");

program.name("kaimo-http-server");
program.usage("[args]");
program.version(version);

Object.values(config).forEach((val) => {
    if (val.option) {
        program.option(val.option, val.description);
    }
});

program.on("--help", () => {
    console.log("\r\nExamples:");
    Object.values(config).forEach((val) => {
        if (val.usage) {
            console.log("  " + val.usage);
        }
    });
});

// 解析用户的参数
let parseObj = program.parse(process.argv);
console.log("parseObj---->", parseObj);

let keys = Object.keys(config);
console.log(keys);

// 最终用户拿到的数据
let resultConfig = {};
keys.forEach((key) => {
    console.log(parseObj[key]);
    resultConfig[key] = parseObj[key] || config[key].default;
});

console.log(resultConfig);

可以执行命令

kaimo-http-server --help

在这里插入图片描述

可以执行命令

kaimo-http-server --version

在这里插入图片描述

可以执行命令

kaimo-http-server --host xxx --port 4000

在这里插入图片描述

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

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

相关文章

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(17)-Fiddler如何充当第三者再识AutoResponder标签-下

1.简介 上一篇宏哥主要讲解的一些在电脑端的操作和应用&#xff0c;今天宏哥讲解和分享一下&#xff0c;在移动端的操作和应用。其实移动端和PC端都是一样的操作&#xff0c;按照宏哥前边抓取移动端包设置好&#xff0c;就可以开始实战了。 2.界面功能解析 根据下图图标注位…

AD21 PCB设计的高级应用(四)FPGA的管脚交换功能

&#xff08;四&#xff09;FPGA的管脚交换功能 高速 PCB 设计过程中,涉及的 FPGA等可编程器件管脚繁多,也因此导致布线的烦琐与困难&#xff0c;Altium Designer 可实现 PCB 中 FPGA 的管脚交换&#xff0c;方便走线。 1.FPGA管脚交换的要求 (1)一般情况下,相同电压的 Bank之…

python——案例三:计算三角形面积

案例三&#xff1a;计算三角形面积 afloat(input(输入三角形第一个边的长度:)) #数据导入 bfloat(input(输入三角形第二个边的长度:)) cfloat(input(输入三角形第三个边的长度:)) s(abc)/2 #半周长计算公式 area(s*(s-a)*(s-b)*(s-c))**0.5 #面积公式 print(area) #

多源bfs

这是 LeetCode 上的「1162. 地图分析」 &#xff0c;难度为「中等」。 与「单源最短路」不同&#xff0c;「多源最短路」问题是求从「多个源点」到达「一个/多个汇点」的最短路径。 在实现上&#xff0c;最核心的搜索部分&#xff0c;「多源 BFS」与「单源 BFS」并无区别。 并…

区块链:可验证随机函数

本篇主要介绍可验证随机函数的定义及其在区块链上的作用。 1 可验证随机函数 1.1 定义 可验证随机函数(Verifiable Random Function&#xff0c;VRF)本质上还是一类具有验证功能的伪随机函数。对于一个特定的输入 m m m以及输入者的私钥 S K SK SK&#xff0c;VRF会输出一个随…

Oracle设置某个表字段递增

当Oracle设置字段递增创建触发器 先建一个序列&#xff0c;打开PLSQL 找到Sequences&#xff0c;右击新建 根据自己的需要填写 然后添加触发器&#xff0c;点新建-程序窗口-空白 --TEST_ID为触发器的名字&#xff0c;TEST是添加触发器的表名 CREATE OR REPLACE TRIGGER &qu…

【C++】 哈希

一、哈希的概念及其性质 1.哈希概念 在顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置之间没有对应的关系&#xff0c;因此在查找一个元素时&#xff0c;必须要经过关键码的多次比较。比如顺序表需要从第一个元素依次向后进行查找&#xff0c;顺序查找时间复杂度为…

【ChatGPT】基于WSL+Docker的ChatGPT PLUS共享服务部署

最近买了ChatGPT PLUS服务&#xff0c;想通过web服务将它共享给其他人使用&#xff0c;搜了一下目前GitHub上比较热门的服务有 ChatGPT-Next-Webchatgpt-web-share 其中chatgpt-web-share支持API和PLUS账号分享两种方式&#xff0c;且架构为PythonJSDocker&#xff0c;相对比…

【EI/SCOPUS会议征稿】第三届检测技术与自动化工程国际学术会议 (TTAE 2023)

第三届检测技术与自动化工程国际学术会议 (TTAE 2023)原定将于2023年9月15-17日在中国西安召开。 检测技术与自动化工程国际学术会议将每年举行一次&#xff0c;旨在将“检测技术”和“自动化工程”等学术领域的学者、专家、研发者、技术人员聚集到一个学术交流的平台&#xf…

docker容器认识及安装(linux系统)

目录 一、Docker概述 容器背景 容器对比传统虚拟化 Docker的使用场景 二、Docker的优点 1、快速的交付和部署 2、更高效的虚拟化 3、更轻松的迁移和扩展 4、简单的管理 三、Docker的核心概念 1、镜像&#xff08;Image&#xff09; 2、容器&#xff08;Container&…

UM2080F32——32位SoC芯片

UM2080F32是基于ARM Cortex-M0内核的超低功耗、高性能的、单片集成(G)FSK/OOK无线收发机的32位SoC芯片。工作于200MHz~960MHz范围内&#xff0c;支持灵活可设的数据包格式&#xff0c;支持自动应答和自动重发功能&#xff0c;支持跳频操作&#xff0c;支持FEC功能&#xff0c;同…

【Lua学习笔记】Lua进阶——垃圾回收

按照唐老师的课程本来要讲自带库的&#xff0c;但是想想这东西能看文档&#xff0c;ctrl左键还能看注解&#xff0c;并且最重要的许多自带库的方法基本大部分语言都有&#xff0c;其实看看就能懂了。所以还是重点讲讲垃圾回收 文章目录 GC辅助垃圾回收collectgarbage增量模式分…

多模态第2篇:MMGCN代码配置

一、Windows环境 1.创建并激活虚拟环境 #创建虚拟环境命名为mmgcn&#xff0c;指定python版本为3.8 conda create -n mmgcn python3.8 #激活虚拟环境 conda activate mmgcn2.安装pytorch #torch2.0.0 cu118 pip install torch2.0.0cu118 torchvision0.15.1cu118 torchaudio…

优维低代码实践:Context / State

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

第六篇:什么是Prometheus Operator

Prometheus Operator简介 Prometheus Operator 是 CoreOS 开发的基于 Prometheus 的 Kubernetes 监控方案&#xff0c;也是目前功能最全面的开源方案。 Prometheus是一个开源的系统监控和报警系统&#xff0c;现在已经加入到CNCF基金会&#xff0c;成为继k8s之后第二个在CNCF…

如何练习笔试中的ACM模式? 这个网站上线了!

7月18日&#xff0c;卡码网 在朋友圈里正式内测&#xff0c;同时也迎来了第一批用户。 经过半个月的不断调试&#xff0c;解决各种问题&#xff0c;现在终于可以正式发布了。 截止发文&#xff0c;卡码网已经迎来了第一千位卡友。 【图片】 卡码网地址&#xff1a;https://k…

MySQL高级篇第5章(存储引擎)

文章目录 1、查看存储引擎2、设置系统默认的存储引擎3、设置表的存储引擎3.1 创建表时指定存储引擎3.2 修改表的存储引擎 4、引擎介绍4.1 InnoDB 引擎&#xff1a;具备外键支持功能的事务存储引擎4.2 MyISAM 引擎&#xff1a;主要的非事务处理存储引擎4.3 Archive 引擎&#xf…

【C++】中位数求解,中位数绝对偏差MAD的应用

标准正态分布是一种均值为0、标准差为1的特殊连续概率分布。它的概率密度函数是对称的钟形曲线。 中位数绝对偏差&#xff08;Median Absolute Deviation&#xff0c;MAD&#xff09;是一种用于衡量数据集的离散程度的统计量。它衡量了观测值相对于数据集的中位数的平均偏离程…

plt中利用plt.subplots()设置xy轴的共享坐标轴

plt.subplots(nrowos,ncols,sharex,sharey,figsize(4, 3),dpi200,constrained_layoutTrue,**kwargs) 参数&#xff1a; nrows&#xff1a;表示规划区域的行数ncols&#xff1a;表示规划区域的列数index&#xff1a;表示选择区域的索引&#xff0c;默认从1开始编号constrained…

复习第二章之Redis

一、什么是Redis Redis 本质上是一个 Key-Value 类型的内存数据库&#xff0c;很像 memcached&#xff0c;整个 数据库统统加载在内存当中进行操作&#xff0c;定期通过异步操作把数据库数据 flush 到硬盘 上进行保存。因为是纯内存操作&#xff0c;Redis 的性能非常出色&…