lightshortcuts 1.0.9 → 1.1.0

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/docs/README.md ADDED
@@ -0,0 +1,357 @@
1
+ # LSC 命令行工具使用文档
2
+
3
+ ## 1. 命令概览
4
+
5
+ LSC (Light Shortcuts) 是一个用于管理和发布离线包的命令行工具,提供了丰富的命令来简化开发和发布流程。
6
+
7
+ | 命令 | 别名 | 描述 |
8
+ |------|------|------|
9
+ | `login` | - | 登录会话 |
10
+ | `md5` | - | 获取MD5密码 |
11
+ | `logout` | - | 注销会话 |
12
+ | `use` | - | 设置当前发布版本 |
13
+ | `config` | - | 交互式配置离线包发布参数 |
14
+ | `init` | - | 快速初始化配置模板 |
15
+ | `publish` | `p` | 发布离线包 |
16
+ | `batch` | `b` | 批量发布离线包 |
17
+ | `deal version` | - | 处理离线包兼容版本重叠 |
18
+ | `clean all` | - | 批量处理离线包兼容版本重叠 |
19
+ | `pwd` | `dir` | 打印当前地址 |
20
+ | `zip` | - | 压缩目录为zip文件 |
21
+
22
+ ## 2. 命令详情
23
+
24
+ ### 2.1 `login` - 登录会话
25
+
26
+ **描述**: 登录到指定环境的管控台会话。
27
+
28
+ **选项**:
29
+ - `-e, --env <type>`: 选择管控台的环境(可选)
30
+
31
+ **使用示例**:
32
+ ```bash
33
+ # 登录到默认环境(dev)
34
+ lsc login
35
+
36
+ # 登录到指定开发环境
37
+ lsc login --env dev
38
+ ```
39
+
40
+ 交互式登录成功会在主目录生成.lscrc.json文件,也可以手动生成如下文件放置到项目目录或主目录下。如果项目目前存在该登录配置文件,优先该配置,否则以主目录文件为准。
41
+
42
+ 登录配置文件示例如下:
43
+
44
+ ```json
45
+ {
46
+ "currentEnv": "dev",
47
+ "dev": {
48
+ "lightBaseURL": "http://light.example.com",//必填,light平台的地址
49
+ "account": "user@example.com",//必填,light平台注册的邮箱或手机号
50
+ "password": "mypassword",//必填,加密后的密码,可以通过执行命令lsc pwd生成
51
+ "wecomWebhook": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx"//选填,企微推送通知机器人链接
52
+ }
53
+ }
54
+ ```
55
+
56
+ **说明**: 如果不指定环境,会尝试读取当前配置的环境,如果不存在则默认使用 `dev` 环境。
57
+
58
+ ### 2.2 `md5` - 获取MD5密码
59
+
60
+ **描述**: 根据密码和邮箱生成MD5加密后的密码。
61
+
62
+ **选项**:
63
+ - `-p, --password <type>`: 输入密码(可选)
64
+ - `-e, --email <type>`: 输入邮箱(可选)
65
+
66
+ **使用示例**:
67
+ ```bash
68
+ # 交互式输入密码和邮箱
69
+ lsc md5
70
+
71
+ # 直接指定密码和邮箱
72
+ lsc md5 --password mypassword --email user@example.com
73
+ ```
74
+
75
+ **说明**: 如果不指定密码或邮箱,会进入交互式输入模式。
76
+
77
+ ### 2.3 `logout` - 注销会话
78
+
79
+ **描述**: 注销当前或指定的管控台会话。
80
+
81
+ **选项**:
82
+ - `-e, --env <type>`: 选择管控台的环境(可选)
83
+ - `-l, --link <link>`: 注销指定管控台链接(可选)
84
+ - `-t, --token <token>`: 注销指定token(可选)
85
+
86
+ **使用示例**:
87
+ ```bash
88
+ # 注销当前环境的会话
89
+ lsc logout
90
+
91
+ # 注销指定环境、链接和token的会话
92
+ lsc logout --env prod --link https://example.com --token abc123
93
+ ```
94
+
95
+ **说明**: 如果不指定环境,会使用当前配置的环境。如果不指定链接或token,会使用当前环境的配置。
96
+
97
+ ### 2.4 `use <name>` - 设置当前发布版本
98
+
99
+ **描述**: 设置当前使用的离线包环境。
100
+
101
+ **参数**:
102
+ - `<name>`: 环境名称
103
+
104
+ **使用示例**:
105
+ ```bash
106
+ # 设置当前环境为 dev
107
+ lsc use dev
108
+ ```
109
+
110
+ **说明**: 环境名称必须是已经登录过的环境。
111
+
112
+ ### 2.5 `config` - 交互式配置离线包发布参数
113
+
114
+ **描述**: 交互式配置离线包发布的各项参数。
115
+
116
+ **使用示例**:
117
+ ```bash
118
+ # 进入交互式配置
119
+ lsc config
120
+ ```
121
+
122
+ **说明**: 会进入交互式问答模式,配置包括:
123
+ - 离线包ID
124
+ - 发布版本号
125
+ - APP版本范围(iOS、Android、Harmony)
126
+ - 发布的APP选择
127
+ - 离线包压缩包存放位置
128
+ - 离线包名称
129
+ - 上一版本处理方式
130
+ - 发布日志
131
+
132
+ ### 2.6 `init` - 快速初始化配置模板
133
+
134
+ **描述**: 快速初始化离线包发布配置模板。
135
+
136
+ **使用示例**:
137
+ ```bash
138
+ # 初始化配置模板
139
+ lsc init
140
+ ```
141
+
142
+ **说明**: 如果配置文件已存在,会询问是否重新初始化。
143
+
144
+ ### 2.7 `publish` - 发布离线包
145
+
146
+ **描述**: 发布单个离线包。
147
+
148
+ **别名**: `p`
149
+
150
+ **使用示例**:
151
+ ```bash
152
+ # 发布离线包
153
+ lsc publish
154
+
155
+ # 使用别名
156
+ lsc p
157
+ ```
158
+
159
+ **说明**: 发布前需要确保已登录(`lsc login`)并配置好发布参数(`lsc config` 或 `lsc init`)。
160
+
161
+ ### 2.8 `batch` - 批量发布离线包
162
+
163
+ **描述**: 批量发布多个离线包。
164
+
165
+ **别名**: `b`
166
+
167
+ **使用示例**:
168
+ ```bash
169
+ # 批量发布离线包
170
+ lsc batch
171
+
172
+ # 使用别名
173
+ lsc b
174
+ ```
175
+
176
+ **说明**: 会根据配置的 `pkg_dir` 目录下的zip文件进行批量发布,以zip文件名作为离线包ID。
177
+
178
+ ### 2.9 `deal version` - 处理离线包兼容版本重叠
179
+
180
+ **描述**: 处理指定APP和离线包的版本兼容重叠问题。
181
+
182
+ **使用示例**:
183
+ ```bash
184
+ # 处理离线包版本重叠
185
+ lsc deal version
186
+ ```
187
+
188
+ **说明**: 会进入交互式输入模式,需要输入APP ID和离线包ID。
189
+
190
+ ### 2.10 `clean all` - 批量处理离线包兼容版本重叠
191
+
192
+ **描述**: 批量处理多个APP的离线包版本兼容重叠问题。
193
+
194
+ **使用示例**:
195
+ ```bash
196
+ # 批量处理离线包版本重叠
197
+ lsc clean all
198
+ ```
199
+
200
+ **说明**: 会进入交互式输入模式,需要输入APP ID列表(逗号分隔)。
201
+
202
+ ### 2.11 `pwd` - 打印当前地址
203
+
204
+ **描述**: 打印当前工作目录的绝对路径。
205
+
206
+ **别名**: `dir`
207
+
208
+ **使用示例**:
209
+ ```bash
210
+ # 打印当前地址
211
+ lsc pwd
212
+
213
+ # 使用别名
214
+ lsc dir
215
+ ```
216
+
217
+ ### 2.12 `zip` - 压缩dist目录为zip文件
218
+
219
+ **描述**: 压缩dist目录下的所有文件(不包括自身生成的zip文件)为一个zip文件。
220
+
221
+ **选项**:
222
+ - `--dir <distDir>`: 指定dist目录的绝对路径(可选)
223
+ - `--output <outputZipFile>`: 指定输出zip文件的路径(可选)
224
+ - `--zn <zipFilename>`: 指定zip文件名(可选)
225
+
226
+ **使用示例**:
227
+ ```bash
228
+ # 使用默认配置压缩
229
+ lsc zip
230
+
231
+ # 指定dist目录、输出路径和文件名
232
+ lsc zip --dir /path/to/dist --output /path/to/output --zn myapp.zip
233
+ ```
234
+
235
+ **说明**: 如果不指定参数,会使用 `lsc.config.json` 中的配置。
236
+
237
+ ## 3. 配置文件
238
+
239
+ LSC 使用 `lsc.config.json` 文件存储配置信息,主要包括:
240
+
241
+ | 配置项 | 描述 | 默认值 |
242
+ |--------|------|--------|
243
+ | `pkgid` | 必选项,离线包ID | - |
244
+ | `set_pkg_version` | 发布版本号 | "1.0.1" |
245
+ | `ios_version_scope` | iOS版本范围 | "7.0.7" |
246
+ | `android_version_scope` | Android版本范围 | "7.0.7.0" |
247
+ | `harmony_version_scope` | Harmony版本范围 | "1.0.1" |
248
+ | `publish_app_arr` | 必选项,发布的APP列表 | ["3542", "3543"] |
249
+ | `pkg_dir` | 离线包存放目录 | "./dist/" |
250
+ | `pkg_zip_name` | 离线包文件名 | "dist.zip" |
251
+ | `task_status` | 上一版本处理方式(对离线包有效) | 0(保留) |
252
+ | `release_desc` | 发布日志 | "功能更新" |
253
+ | need_wechat_push | 是否开启微信企微机器人推送 | false |
254
+ | publish_h5web_arr | 必选项,要发布的H5应用的ID | - |
255
+ | h5web_name | H5应用对应的名称 | - |
256
+
257
+ lsc.config.json示例及说明:
258
+
259
+ ```json
260
+ {
261
+ "pkgid": "lscpkg",//必填
262
+ "need_wechat_push": false,
263
+ "set_pkg_version": "1.0.1",
264
+ "ios_version_scope": "7.0.7",
265
+ "android_version_scope": "7.0.7.0",
266
+ "harmony_version_scope": "1.0.1",
267
+ "publish_app_arr": [
268
+ "3542"//需要发布的APP的ID
269
+ ],
270
+ "pkg_dir": "./dist/",
271
+ "pkg_zip_name": "lscdemo.zip",
272
+ "task_status": 2,
273
+ "apps_name": {
274
+ "3542": "开发版",
275
+ "3543": "仿真版"
276
+ },
277
+ "publish_h5web_arr": [
278
+ "8112734868610136",//需要发布的H5的ID
279
+ "8112734868610049"
280
+ ],
281
+ "h5web_name": {
282
+ "8112734868610136": "账户分析PC公版",
283
+ "8112734868610049": "账户分析超级终端版本"
284
+ }
285
+ }
286
+ ```
287
+
288
+
289
+
290
+ ## 4. zip压缩变量
291
+
292
+ | 环境变量 | 描述 | 默认值 |
293
+ |----------|------|--------|
294
+ | `ZIP_COMPRESSION_LEVEL` | 压缩级别 (0-9) | 9 |
295
+ | `ZIP_STAT_CONCURRENCY` | 文件状态检查并发数 | 4 |
296
+ | `ZIP_STAT_TIMEOUT` | 文件状态检查超时时间(毫秒) | 10000 |
297
+
298
+ ## 5. 常见问题
299
+
300
+ ### 5.1 登录失败
301
+
302
+ **解决方案**:
303
+ - 检查网络连接
304
+ - 确认环境参数正确
305
+ - 确认账号密码正确
306
+
307
+ ### 5.2 发布失败
308
+
309
+ **解决方案**:
310
+ - 确认已登录(`lsc login`)
311
+ - 确认配置文件存在(`lsc config` 或 `lsc init`)
312
+ - 检查离线包文件是否存在
313
+ - 检查网络连接
314
+
315
+ ### 5.3 压缩失败
316
+
317
+ **解决方案**:
318
+ - 确认dist目录存在
319
+ - 确认配置文件存在
320
+ - 检查目录权限
321
+
322
+ ## 6. 示例工作流
323
+
324
+ ### 6.1 首次使用流程
325
+
326
+ 1. **初始化配置**: `lsc init`
327
+ 2. **配置发布参数**: `lsc config`
328
+ 3. **登录管控台**: `lsc login`
329
+ 4. **压缩文件**: `lsc zip`
330
+ 5. **发布离线包**: `lsc publish`
331
+
332
+ ### 6.2 日常发布流程
333
+
334
+ 1. **确保已登录**: `lsc login`
335
+ 2. **构建项目**(根据项目实际命令)
336
+ 3. **压缩文件**: `lsc zip`
337
+ 4. **发布离线包**: `lsc publish`
338
+
339
+ ### 6.3 批量发布流程
340
+
341
+ 1. **确保已登录**: `lsc login`
342
+ 2. **构建多个项目**
343
+ 3. **准备多个zip文件**到配置的 `pkg_dir` 目录
344
+ 4. **批量发布**: `lsc batch`
345
+
346
+ ## 7. 版本信息
347
+
348
+ - **工具版本**: 1.1.0
349
+ - **最后更新**: 2026-01-21
350
+
351
+ ## 8. 注意事项
352
+
353
+ 1. **安全提示**: 登录信息会存储在本地配置文件中,请确保配置文件的安全性
354
+ 2. **版本重叠**: 使用 `deal version` 和 `clean all` 命令时请谨慎,可能会影响现有版本
355
+ 3. **配置文件**: 请确保 `lsc.config.json` 文件存在且配置正确
356
+ 4. **网络连接**: 发布和登录操作需要网络连接到管控台
357
+ 5. **权限**: 确保有足够的权限读写配置文件和发布目录