@shuiyangsuan/cli 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +226 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +8876 -0
- package/dist/index.js.map +1 -0
- package/package.json +61 -0
package/README.md
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# @shuiyangsuan/cli
|
|
2
|
+
|
|
3
|
+
一个基于 Node.js 的命令行工具集,提供高效的文件管理功能。
|
|
4
|
+
|
|
5
|
+
## ✨ 特性
|
|
6
|
+
|
|
7
|
+
- 🚀 **快速删除** - 支持 glob 模式批量删除文件和文件夹
|
|
8
|
+
- 🔍 **预览模式** - dry-run 模式,删除前可预览将要删除的内容
|
|
9
|
+
- 🛡️ **安全保护** - 默认需要确认,防止误删
|
|
10
|
+
- 📦 **并行处理** - 并行执行删除操作,提升性能
|
|
11
|
+
- ⚡ **现代化工具栈** - 使用 TypeScript + Bun Test + Rolldown 构建
|
|
12
|
+
|
|
13
|
+
## 📦 安装
|
|
14
|
+
|
|
15
|
+
### 从 npm 安装(推荐)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g @shuiyangsuan/cli
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 从源码安装
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
git clone <repository-url>
|
|
25
|
+
cd cli
|
|
26
|
+
npm install
|
|
27
|
+
npm run build
|
|
28
|
+
npm link
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 🚀 使用方法
|
|
32
|
+
|
|
33
|
+
### 基本用法
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 删除单个文件
|
|
37
|
+
by delete file.txt
|
|
38
|
+
|
|
39
|
+
# 删除多个文件
|
|
40
|
+
by delete file1.txt file2.txt file3.log
|
|
41
|
+
|
|
42
|
+
# 删除文件夹
|
|
43
|
+
by delete my-folder/
|
|
44
|
+
|
|
45
|
+
# 使用别名
|
|
46
|
+
by rm file.txt
|
|
47
|
+
by del file.txt
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Glob 模式匹配
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# 删除所有 .txt 文件
|
|
54
|
+
by delete "*.txt"
|
|
55
|
+
|
|
56
|
+
# 删除所有 .log 文件
|
|
57
|
+
by delete "**/*.log"
|
|
58
|
+
|
|
59
|
+
# 删除特定前缀的文件
|
|
60
|
+
by delete "test-*"
|
|
61
|
+
|
|
62
|
+
# 混合使用多个模式
|
|
63
|
+
by delete "*.tmp" "*.cache" "dist/**"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 选项参数
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# 强制删除,跳过确认提示
|
|
70
|
+
by delete "*.tmp" --force
|
|
71
|
+
by delete "*.tmp" -f
|
|
72
|
+
|
|
73
|
+
# 预览模式,仅查看将要删除的内容
|
|
74
|
+
by delete "*.tmp" --dry-run
|
|
75
|
+
by delete "*.tmp" -n
|
|
76
|
+
|
|
77
|
+
# 详细输出模式
|
|
78
|
+
by delete "*.tmp" --verbose
|
|
79
|
+
by delete "*.tmp" -v
|
|
80
|
+
|
|
81
|
+
# 使用配置文件中的默认设置
|
|
82
|
+
by delete "*.tmp" --use-defaults
|
|
83
|
+
by delete "*.tmp" -d
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 组合使用示例
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# 预览并详细输出
|
|
90
|
+
by delete "dist/**" --dry-run --verbose
|
|
91
|
+
|
|
92
|
+
# 强制删除所有临时文件
|
|
93
|
+
by delete "*.tmp" "*.log" --force --verbose
|
|
94
|
+
|
|
95
|
+
# 删除构建产物(先预览确认)
|
|
96
|
+
by delete "dist" "build" ".next" --dry-run
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 📖 命令说明
|
|
100
|
+
|
|
101
|
+
### delete (rm, del)
|
|
102
|
+
|
|
103
|
+
删除文件和文件夹,支持 glob 模式匹配。
|
|
104
|
+
|
|
105
|
+
**语法:**
|
|
106
|
+
```bash
|
|
107
|
+
by delete <patterns...> [options]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**参数:**
|
|
111
|
+
- `<patterns...>` - 要删除的文件或文件夹路径/模式(支持多个)
|
|
112
|
+
|
|
113
|
+
**选项:**
|
|
114
|
+
- `-f, --force` - 强制删除,不提示确认
|
|
115
|
+
- `-n, --dry-run` - 预览模式,仅显示将要删除的内容
|
|
116
|
+
- `-v, --verbose` - 详细输出模式
|
|
117
|
+
- `-d, --use-defaults` - 使用配置文件中的默认模式
|
|
118
|
+
|
|
119
|
+
**退出码:**
|
|
120
|
+
- `0` - 成功
|
|
121
|
+
- `1` - 失败或有错误发生
|
|
122
|
+
|
|
123
|
+
## 🔧 开发
|
|
124
|
+
|
|
125
|
+
### 环境要求
|
|
126
|
+
|
|
127
|
+
- Node.js >= 24.0.0
|
|
128
|
+
- Bun (用于测试)
|
|
129
|
+
|
|
130
|
+
### 开发命令
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# 安装依赖
|
|
134
|
+
npm install
|
|
135
|
+
|
|
136
|
+
# 开发模式(监听变化自动构建)
|
|
137
|
+
npm run dev
|
|
138
|
+
|
|
139
|
+
# 构建生产版本
|
|
140
|
+
npm run build
|
|
141
|
+
|
|
142
|
+
# 运行测试
|
|
143
|
+
npm test
|
|
144
|
+
# 或
|
|
145
|
+
bun test
|
|
146
|
+
|
|
147
|
+
# 运行手动测试
|
|
148
|
+
npm run test:manual
|
|
149
|
+
|
|
150
|
+
# 调试模式
|
|
151
|
+
npm run test:debug
|
|
152
|
+
|
|
153
|
+
# 代码检查
|
|
154
|
+
npm run lint
|
|
155
|
+
|
|
156
|
+
# 代码格式化
|
|
157
|
+
npm run fmt
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 项目结构
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
cli/
|
|
164
|
+
├── src/
|
|
165
|
+
│ ├── commands/ # CLI 命令定义
|
|
166
|
+
│ │ ├── index.ts # 命令导出
|
|
167
|
+
│ │ └── delete.ts # 删除命令实现
|
|
168
|
+
│ ├── config/ # 配置相关
|
|
169
|
+
│ │ ├── index.ts # 配置加载
|
|
170
|
+
│ │ └── types.ts # 配置类型
|
|
171
|
+
│ ├── utils/ # 工具函数
|
|
172
|
+
│ │ ├── file.ts # 文件操作
|
|
173
|
+
│ │ └── logger.ts # 日志输出
|
|
174
|
+
│ └── index.ts # 入口文件
|
|
175
|
+
├── __tests__/ # 测试文件
|
|
176
|
+
│ ├── delete.test.ts # 删除命令测试
|
|
177
|
+
│ └── utils/ # 测试工具函数
|
|
178
|
+
├── dist/ # 构建输出目录
|
|
179
|
+
└── package.json
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## 🧪 测试
|
|
183
|
+
|
|
184
|
+
项目使用 Bun Test 进行测试,确保所有功能正常工作。
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# 运行所有测试
|
|
188
|
+
bun test
|
|
189
|
+
|
|
190
|
+
# 测试覆盖率(未来添加)
|
|
191
|
+
bun test --coverage
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
测试覆盖以下场景:
|
|
195
|
+
- ✅ 基础删除功能(单文件、多文件、文件夹)
|
|
196
|
+
- ✅ 预览模式(dry-run)
|
|
197
|
+
- ✅ 强制删除模式
|
|
198
|
+
- ✅ 错误处理
|
|
199
|
+
- ✅ 复杂场景(嵌套目录、特殊字符文件名)
|
|
200
|
+
|
|
201
|
+
## 📝 配置
|
|
202
|
+
|
|
203
|
+
可以通过配置文件自定义默认行为(配置功能开发中)。
|
|
204
|
+
|
|
205
|
+
## 🤝 贡献
|
|
206
|
+
|
|
207
|
+
欢迎提交 Issue 和 Pull Request!
|
|
208
|
+
|
|
209
|
+
## 📄 许可证
|
|
210
|
+
|
|
211
|
+
MIT License
|
|
212
|
+
|
|
213
|
+
## 👤 作者
|
|
214
|
+
|
|
215
|
+
yangguodong
|
|
216
|
+
|
|
217
|
+
## 🛠️ 技术栈
|
|
218
|
+
|
|
219
|
+
- **TypeScript** - 类型安全的 JavaScript 超集
|
|
220
|
+
- **commander** - CLI 框架
|
|
221
|
+
- **fast-glob** - 快速的 glob 模式匹配
|
|
222
|
+
- **Rolldown** - 构建工具
|
|
223
|
+
- **Bun Test** - 测试框架
|
|
224
|
+
- **oxlint** - 代码检查
|
|
225
|
+
- **oxfmt** - 代码格式化
|
|
226
|
+
- **husky + lint-staged** - Git Hooks 管理
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/config/types.d.ts
|
|
2
|
+
interface CliConfig {
|
|
3
|
+
/** 默认的 glob 模式 */
|
|
4
|
+
defaultPatterns?: string[];
|
|
5
|
+
/** 默认的删除路径 */
|
|
6
|
+
defaultPaths?: string[];
|
|
7
|
+
/** 是否强制删除不提示 */
|
|
8
|
+
force?: boolean;
|
|
9
|
+
/** 预览模式 */
|
|
10
|
+
dryRun?: boolean;
|
|
11
|
+
/** 详细日志输出 */
|
|
12
|
+
verbose?: boolean;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { CliConfig };
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|