iasei-cli
v1.0.2
Published
A TypeScript CLI tool for scaffolding business front-end projects.
Downloads
426
Readme
iasei-cli 测试
一个用于业务前端项目脚手架与工具文件管理的 TypeScript CLI 工具。
简介
iasei-cli 是基于 TypeScript + Commander.js 构建的命令行工具,主要用于从远端仓库拉取并生成业务工具文件。它通过远端 list.json 维护工具清单,支持列出可用工具以及按类型创建对应的 .ts 工具文件到指定目录。
特性
- 远端工具清单查询(
list) - 按
name拉取并生成工具文件(create) - 本地命令帮助表(
help) - 支持自定义输出路径(目录或
.ts文件) - 友好的终端输出(chalk 着色 + ora 进度)
- 纯 TypeScript 实现,ESM 模块
环境要求
- Node.js >= 18(使用 ESM 与
import.meta) - pnpm >= 10(推荐,亦可用 npm / yarn)
安装
# 本地依赖安装
pnpm install
# 全局链接(可选,便于直接调用 iasei-cli)
pnpm link --global使用
查看版本
iasei-cli -v
# 或
iasei-cli --version命令:tools
iasei-cli tools [flag] [-n <name>] [-o <output>]flag 为可选参数,取值如下:
| flag | 说明 |
| --------- | ------------------------------------------------- |
| list | 拉取并展示远端工具列表(表格形式) |
| create | 按 --name 拉取工具文件并写入本地 |
| help | 输出本地命令帮助表(列出可用命令及描述) |
| 不传 | 等同于 create,但需要携带 --name,否则报错 |
选项
| 选项 | 说明 | 必填 |
| ---------------------- | ------------------------------------------ | ---- |
| -n, --name <name> | 工具名称(对应清单中的 key) | 是* |
| -o, --output <output>| 输出路径:可为目录或 .ts 文件路径 | 否 |
* 当
flag为create或不传时必填;若缺失会输出红色提示并终止。list/help时忽略。
示例
# 查看本地命令帮助
iasei-cli tools help
# 列出远端工具清单
iasei-cli tools list
# 在当前目录生成 <name>.ts
iasei-cli tools -n <name>
# 指定输出目录
iasei-cli tools -n <name> -o ./src/utils
# 指定输出文件名
iasei-cli tools -n <name> -o ./src/utils/helper.ts输出路径规则
- 未传
-o:写入process.cwd()/<name>.ts -o以.<name>.ts结尾:直接作为文件路径写入-o以其他.ts结尾:视为文件路径,直接写入-o不以.ts结尾:视为目录,写入<output>/<name>.ts
配置
远端地址在 src/config.ts 中维护:
export const TOOLS_URL =
"https://gitee.com/PurpleQuietElf/iasei-tools/raw/master/a.ts";
export const REMOTE_LIST_URL =
"https://gitee.com/PurpleQuietElf/iasei-tools/raw/master/list.json";REMOTE_LIST_URL:工具清单(数组,每项含key/name/desc/gitUrl)TOOLS_URL:单个工具文件兜底地址
开发
# 直接以 tsx 运行源码(无需编译)
pnpm dev
# 类型检查 + 编译到 dist
pnpm build
# 运行编译产物
pnpm start目录结构
src/
├── bin/
│ └── index.ts # CLI 入口,注册 commander 命令
├── lib/
│ ├── tools.ts # createTools / listTools 实现
│ └── help.ts # listCommands 本地帮助表
└── config.ts # 远端地址等常量技术栈
- TypeScript 5.9 + NodeNext ESM
- commander(命令解析)
- inquirer(交互)
- axios(远端请求)
- fs-extra(文件操作)
- chalk / ora(终端着色与进度)
- handlebars(模板)
- download-git-repo(仓库拉取)
License
ISC
