citty
优雅的 CLI 构建器。
优雅的命令行界面构建器
- 基于 mri 的快速轻量级参数解析器
- 智能值解析,支持类型转换、布尔值快捷方式和未知标志处理
- 嵌套子命令
- 懒加载和异步命令
- 可插拔和可组合的 API
- 自动生成用法说明和帮助信息
🚧 该项目正在大力开发中。更多功能即将推出!
用法
安装包
# npm
npm install citty
# yarn
yarn add citty
# pnpm
pnpm install citty
导入
// ESM
import { defineCommand, runMain } from "citty";
// CommonJS
const { defineCommand, runMain } = require("citty");
定义要运行的主命令
import { defineCommand, runMain } from "citty";
const main = defineCommand({
meta: {
name: "hello",
version: "1.0.0",
description: "My Awesome CLI App",
},
args: {
name: {
type: "positional",
description: "Your name",
required: true,
},
friendly: {
type: "boolean",
description: "Use friendly greeting",
},
},
run({ args }) {
console.log(`${args.friendly ? "Hi" : "Greetings"} ${args.name}!`);
},
});
runMain(main);
工具
defineCommand
defineCommand
是一个用于定义命令的类型辅助函数。
runMain
运行命令,支持用法说明和优雅的错误处理。
createMain
创建一个命令包装器,在调用时会调用 runMain
。
runCommand
解析输入参数并运行命令和子命令(非监督模式)。您可以从返回/等待的值中访问 result
键以获取命令的结果。
parseArgs
解析输入参数并应用默认值。
renderUsage
将命令用法呈现为字符串值。
showUsage
呈现用法并打印到控制台
开发
许可
用心制作 💛 根据 MIT 许可证 发布。
参数解析器基于 Luke Edwards (@lukeed) 的 lukeed/mri。