@xubill/xx-cli
v2.0.2
Published
个人工具集
Readme
xx-cli
个人开发工具集,支持插件系统,提供常用开发工具功能。
安装与使用
# 全局安装 xx-cli
npm i @xubill/xx-cli -g
# 添加插件
xx p add xxxx.js
# 使用命令
xx <command> [options]版本记录
v2.0.0
- 支持新格式命令注册,兼容旧格式插件
- 更新插件创建模板,采用配置对象格式并包含类结构实现
v2.0.1
- 新增ai插件,解析自然语言为xx命令
框架自带命令
xx-cli 框架自带以下核心命令(位于 core 模块中):
基础命令
| 命令 | 别名 | 描述 |
|------|------|------|
| help | - | 显示帮助信息 |
| version | v | 显示版本信息 |
| history | h | 查看命令历史记录 |
| ai | - | AI 智能解释命令,将自然语言转换为 xx 命令 |
AI 插件使用说明
获取 API key:访问 白山智算 获取 API key
使用方法:
# 快捷添加 API key
xx ai add <apiKey>
# 使用 AI 解释命令
xx ai <查询内容>
# 生成配置文件
xx ai config示例:
# 添加 API key
xx ai add sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 解释命令
xx ai 关闭占用3000端口的进程
# 命令兜底(输入不存在的命令时自动调用 AI)
xx npm插件管理命令
| 命令 | 别名 | 描述 |
|------|------|------|
| plugin list | p ls | 列出所有插件 |
| plugin enable <plugin> | p en <plugin> | 启用插件 |
| plugin disable <plugin> | p dis <plugin> | 禁用插件 |
| plugin add <url> | p add <url> | 添加外部自定义插件 |
| plugin remove <plugin> | p rm <plugin> | 删除指定插件 |
| plugin create <name> | p cr <name> | 创建指定名称的插件模板 |
| plugin config <plugin> [key] [value] | p c <plugin> [key] [value] | 查看和设置插件配置 |
配置管理命令
| 命令 | 别名 | 描述 |
|------|------|------|
| config-manager export [target] | conf export [target] | 导出所有插件配置到指定目录 |
| config-manager import [source] | conf import [source] | 从指定目录导入配置并覆盖 |
| config-manager list | conf list | 列出所有插件的配置文件位置和状态 |
项目结构
xx-cli 项目采用模块化设计,主要包含以下核心目录:
核心模块目录 (/Users/xub/xx-cli/lib/core)
核心模块目录包含 xx-cli 的核心功能实现,负责初始化系统、注册命令、管理插件等。
文件结构
lib/core/
├── index.js # 核心模块,负责初始化系统、注册命令、管理插件等
└── base-plugin.js # 插件基础类,提供标准化的插件接口和通用功能核心文件说明
- index.js:核心模块,负责初始化系统、注册命令、管理插件等。它包含了插件加载、命令注册、钩子管理等核心功能。
- base-plugin.js:插件基础类,提供标准化的插件接口和通用功能。所有插件应该继承此类以确保一致性,它提供了命令注册、配置管理、用户界面等通用功能。
插件目录 (/Users/xub/xx-cli/lib/plugins)
插件目录包含 xx-cli 的内置插件,这些插件提供了各种功能,如配置管理、历史记录管理、插件管理等。
文件结构
lib/plugins/
├── config-manager.js # 配置管理插件,用于管理所有插件的配置文件
├── history.js # 历史记录插件,用于查看命令历史记录
└── plugin-manager.js # 插件管理插件,用于管理所有插件内置插件说明
- config-manager.js:配置管理插件,用于管理所有插件的配置文件。它提供了导出、导入、列出配置等功能。
- history.js:历史记录插件,用于查看命令历史记录。它提供了查看、清除、搜索历史记录等功能。
- plugin-manager.js:插件管理插件,用于管理所有插件。它提供了列出、启用、禁用、添加、删除、创建插件等功能。
- ai.js:AI 智能解释插件,用于解释 xx-cli 命令的含义,将自然语言转换为命令。它提供了智能解释、命令兜底等功能。
插件开发
本部分将详细介绍如何在 xx-cli 中创建、开发和部署插件。
插件格式
xx-cli 支持两种插件格式:
- 新格式(配置对象格式):使用配置对象定义的插件实现(推荐)
- 旧格式(类结构格式):继承自
BasePlugin类的插件实现(仅用于向后兼容)
新格式插件开发(推荐)
新格式插件使用配置对象定义插件信息和命令,结合类结构实现核心功能,是推荐的插件开发方式。
创建新格式插件
# 创建新格式插件(默认)
xx plugin create <plugin-name>
# 或者使用别名
xx p create <plugin-name>
# 或者使用更短的别名
xx p cr <plugin-name>新格式插件特点
- 配置对象格式:使用配置对象定义插件的基本信息和命令
- 包含类结构实现:核心功能通过类结构实现,提高代码模块化和可维护性
- 自动生成命令名称:根据插件名称自动生成驼峰命名的命令名称
- 标准的用户提示:使用标准化的用户提示和错误处理
详细文档
完整的新格式插件开发指南请参考:新格式插件开发教程
旧格式插件开发(仅用于向后兼容)
旧格式插件需要继承 BasePlugin 类,主要用于向后兼容已有的插件。
创建旧格式插件
# 创建旧格式插件
xx plugin create <plugin-name> --format old详细文档
完整的旧格式插件开发指南请参考:旧格式插件开发教程
