63 # commander 的配置

chatgpt/2023/9/26 12:50:55

初始化配置文件

新建文件夹 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 nodeconsole.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 nodeconst 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.exyb.cn/news/show-5314215.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

SQL项目实战:银行客户分析

大家好&#xff0c;本文将与大家分享一个SQL项目&#xff0c;即根据从数据集收集到的信息分析银行客户流失的可能性。这些洞察来自个人信息&#xff0c;如年龄、性别、收入和人口统计信息、银行卡类型、产品、客户信用评分以及客户在银行的服务时间长短等。对于银行而言&#x…

day16 | 513.找树左下角的值 112.路径总和 106.从中序与后序遍历序列构造二叉树

文章目录 一、找树左下角的值二、路径总和三、从中序与后序遍历序列构造二叉树 一、找树左下角的值 513.找树左下角的值 暴力解法 class Solution { public:int findBottomLeftValue(TreeNode *root){// 第一眼想到的就是层序遍历&#xff0c;取最后一层的第一个值即可queue…

分享一个赛车动画

先看效果&#xff08;动画太大了放不上来&#xff0c;甘心去复制代码运行即可&#xff09;&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>赛车</title><…

云GPU商家集锦

诸神缄默不语-个人CSDN博文目录 如果有哪家关门了可以联系我删除。 colabKaggle飞桨AI Studio - 人工智能学习实训社区&#xff08;只能用飞桨&#xff09;AWS 云服务-专业的大数据和云计算服务以及云解决方案提供商腾讯云阿里云云计算服务 | Microsoft Azure矩池云闪电算力云…

CHI中的resp type

Rsp分为4大类&#xff1b; Completion response □ 除了PCrdReturn&#xff0c;PrefetchTgt&#xff0c;其他所有的trans都需要comp resp; □ 通常是一个trans的最后一个发送的message, 来自completer; 这个响应保证trans到达了POS/POC; □ 通常RN还会发送一个compack;Read an…

LeetCode经验总结

LeetCode经验总结 文本链接&#xff0c;点击这里↓ 题号题目方法(同类型题目)9回文数数学位运算、中间扩散、双指针13罗马数字转整数左减右加26删除有序数组中的重复项双指针(26、27)27移除元素双指针41缺失的第一个正数原地哈希136只出现一次的数异或法(136、268)268丢失的数…

code_profiling_代码剖析

代码剖析&#xff08;Code profiling&#xff09; 代码 内存、耗时、调用等情况 Linux性能分析工具与图形化方法 bcc 基于bpf 分析linux 系统性能的强大工具包 网络监控分析工具集&#xff08;当然也可以分析java&#xff0c;ruby&#xff0c;python…&#xff09; linux 系…

MATLAB RANSAC球体点云拟合(30)

MATLAB RANSAC球体点云拟合(30) 一、算法简介二、函数介绍三、具体实现四、效果展示一、算法简介 将一个球体与一个从内点到球体的最大允许距离的点云相匹配。该函数返回一个描述球体的几何模型。该函数采用 M- 估计量样本一致性(MSAC)算法求解球面。MSAC 算法是随机样本一致…
推荐文章