@agile-team/jh4j-cloud-cli 0.3.0 → 0.5.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/CHANGELOG.md +19 -0
- package/README.md +309 -87
- package/dist/index.js +113 -74
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
- 精简交互流程:单模板自动选择,标准能力直接采用模板默认值。
|
|
6
|
+
- 模块标识自动从项目名推导,不再询问 Registry、public 地址和五套环境配置。
|
|
7
|
+
- 默认不安装依赖,创建完成后提示开发者手动执行 `pnpm install`。
|
|
8
|
+
- 增加显式 `--install` 参数,仍可按需启用自动安装。
|
|
9
|
+
- 完成提示中列出项目配置、Registry 和环境文件的修改位置。
|
|
10
|
+
- 只展示当前可用的项目类型,并使用互不混淆的固定技术栈标签。
|
|
11
|
+
- 项目名自动转为小写短横线格式,标题、端口和 URL 在输入时就地校验。
|
|
12
|
+
- 模板下载阶段显示进度状态,单模板自动选择后明确显示模板名称。
|
|
13
|
+
|
|
14
|
+
## 0.4.0
|
|
15
|
+
|
|
16
|
+
- 接入 `mobile.robot-h5` 移动端 H5 模板,支持 GitHub/Gitee 双 HTTPS 源。
|
|
17
|
+
- 移动端创建流程使用应用标题、本地 API 地址等移动端语义,隐藏 PC 专属问题。
|
|
18
|
+
- CLI 与直接 clone 共用移动端模板初始化契约。
|
|
19
|
+
- 移除 `--ref` 的硬编码 `main` 默认值,允许各模板使用 Catalog 中声明的分支或标签。
|
|
20
|
+
- 重写中文 README,使说明与当前命令和能力保持一致。
|
|
21
|
+
|
|
3
22
|
## 0.3.0
|
|
4
23
|
|
|
5
24
|
- 增加“项目类型 → 具体模板 → 标准能力”的分层交互。
|
package/README.md
CHANGED
|
@@ -1,69 +1,121 @@
|
|
|
1
|
-
#
|
|
1
|
+
# JH4J Cloud CLI
|
|
2
2
|
|
|
3
|
-
JH4J Cloud
|
|
3
|
+
JH4J Cloud 团队项目脚手架,用于从受控模板快速创建结构一致、配置完整、可追溯的工程。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
当前版本:`@agile-team/jh4j-cloud-cli@0.5.0`。
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- pnpm 11.8+
|
|
9
|
-
- Git(使用 Git 模板源或初始化项目仓库时需要)
|
|
7
|
+
## 核心能力
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
| 能力 | 说明 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| 分类选择 | 按前端、后端、移动端组织模板;当前已接入 PC 与移动端模板 |
|
|
12
|
+
| 精简交互 | 只确认项目类型、标题、端口和本地服务地址;其余采用模板默认值 |
|
|
13
|
+
| 即时校验 | 项目名自动规范化,端口和 URL 错误在当前输入步骤直接提示 |
|
|
14
|
+
| 非交互创建 | 支持命令行参数和 JSON 配置文件,适用于 CI 与批量初始化 |
|
|
15
|
+
| 多源拉取 | 支持本地目录、Git、HTTP 压缩包和离线压缩包 |
|
|
16
|
+
| 源站容灾 | 内置模板按 GitHub → Gitee 顺序拉取,主源不可用时自动切换 |
|
|
17
|
+
| 模板缓存 | 按 `source + ref` 缓存远程模板,支持查看、清理和强制刷新 |
|
|
18
|
+
| 安全生成 | 在临时目录完成初始化与校验,成功后再原子写入目标目录 |
|
|
19
|
+
| 工程初始化 | 默认不安装依赖;可初始化 `main` 分支并创建首次提交 |
|
|
20
|
+
| 来源追踪 | 生成 `.jhlc/project.json`,记录模板版本、CLI 版本和创建参数 |
|
|
21
|
+
|
|
22
|
+
生成链路:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
jh4j create
|
|
26
|
+
→ 读取 Catalog
|
|
27
|
+
→ 选择项目类型与模板
|
|
28
|
+
→ 解析可用模板源
|
|
29
|
+
→ 拉取或读取缓存
|
|
30
|
+
→ 校验 template.manifest.json
|
|
31
|
+
→ 在 staging 目录执行模板初始化
|
|
32
|
+
→ 生成项目并初始化 Git
|
|
33
|
+
→ 开发者按需修改配置并手动安装依赖
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 环境要求
|
|
37
|
+
|
|
38
|
+
- Node.js `^22.12.0 || ^24.0.0`,推荐 Node.js 24
|
|
39
|
+
- pnpm `>=11.8.0`
|
|
40
|
+
- Git
|
|
41
|
+
|
|
42
|
+
建议先检查本机环境:
|
|
12
43
|
|
|
13
44
|
```bash
|
|
14
|
-
|
|
15
|
-
pnpm check
|
|
16
|
-
node bin/jh4j.js doctor
|
|
45
|
+
npx @agile-team/jh4j-cloud-cli doctor
|
|
17
46
|
```
|
|
18
47
|
|
|
19
|
-
|
|
48
|
+
## 快速开始
|
|
49
|
+
|
|
50
|
+
无需全局安装:
|
|
20
51
|
|
|
21
52
|
```bash
|
|
22
|
-
npx @agile-team/jh4j-cloud-cli create
|
|
53
|
+
npx @agile-team/jh4j-cloud-cli create jh4j-ui-orders
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
或者全局安装:
|
|
23
57
|
|
|
24
|
-
|
|
58
|
+
```bash
|
|
25
59
|
pnpm add -g @agile-team/jh4j-cloud-cli
|
|
26
|
-
jh4j create
|
|
60
|
+
jh4j create jh4j-ui-orders
|
|
27
61
|
```
|
|
28
62
|
|
|
29
|
-
|
|
63
|
+
交互模式只确认必要信息,直接回车即可接受当前默认值:
|
|
30
64
|
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
|
|
65
|
+
```text
|
|
66
|
+
项目类型
|
|
67
|
+
→ 单个可用模板自动选中
|
|
68
|
+
→ 系统/应用标题
|
|
69
|
+
→ 开发端口
|
|
70
|
+
→ 本地后端/API 地址
|
|
71
|
+
→ 生成项目并初始化 Git
|
|
72
|
+
```
|
|
34
73
|
|
|
35
|
-
|
|
36
|
-
# 当前后端、移动端会显示为“暂未提供”,加入 Catalog 后自动开放
|
|
74
|
+
标准能力默认启用,Registry、模块标识和各套环境配置不再逐项询问。需要调整时,创建完成后直接修改项目中的 `project.config.json`、`.npmrc` 和 `.env*` 文件。
|
|
37
75
|
|
|
38
|
-
|
|
39
|
-
jh4j create my-app \
|
|
40
|
-
--yes \
|
|
41
|
-
--category frontend \
|
|
42
|
-
--template web.jh4j-mf-remote \
|
|
43
|
-
--module my-app \
|
|
44
|
-
--title "My Application" \
|
|
45
|
-
--port 8001
|
|
76
|
+
项目名允许输入常见的人类可读形式,CLI 会自动转为适合目录和 `package.json` 的小写名称。例如 `JH4J 移动端 H5 模板` 会转换为 `jh4j-h5`;如果输入无法得到任何字母或数字,会在当前输入框中直接提示。
|
|
46
77
|
|
|
47
|
-
|
|
48
|
-
jh4j create my-app --yes --config ./project-input.json
|
|
78
|
+
当前 Catalog 中可用模板:
|
|
49
79
|
|
|
50
|
-
|
|
51
|
-
|
|
80
|
+
| 类型 | 模板 ID | 模板 |
|
|
81
|
+
| --- | --- | --- |
|
|
82
|
+
| 前端 | `web.jh4j-mf-remote` | Vue 3 + Vite + Module Federation PC 业务子系统 |
|
|
83
|
+
| 后端 | — | 暂未接入 |
|
|
84
|
+
| 移动端 | `mobile.robot-h5` | Vue 3 + Vite 7 + Vant 4 企业级 H5 应用 |
|
|
52
85
|
|
|
53
|
-
|
|
54
|
-
|
|
86
|
+
## 创建项目
|
|
87
|
+
|
|
88
|
+
### 交互创建
|
|
55
89
|
|
|
56
|
-
|
|
57
|
-
jh4j create
|
|
90
|
+
```bash
|
|
91
|
+
jh4j create jh4j-ui-orders
|
|
58
92
|
```
|
|
59
93
|
|
|
60
|
-
|
|
94
|
+
### 使用明确参数创建
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
jh4j create jh4j-ui-orders \
|
|
98
|
+
--yes \
|
|
99
|
+
--category frontend \
|
|
100
|
+
--template web.jh4j-mf-remote \
|
|
101
|
+
--module orders \
|
|
102
|
+
--title "订单中心" \
|
|
103
|
+
--port 8123
|
|
104
|
+
```
|
|
61
105
|
|
|
62
|
-
|
|
106
|
+
创建移动端项目:
|
|
63
107
|
|
|
64
|
-
|
|
108
|
+
```bash
|
|
109
|
+
jh4j create jh4j-mobile-orders \
|
|
110
|
+
--yes \
|
|
111
|
+
--category mobile \
|
|
112
|
+
--template mobile.robot-h5 \
|
|
113
|
+
--title "移动订单中心" \
|
|
114
|
+
--port 8888 \
|
|
115
|
+
--local-backend http://localhost:10010
|
|
116
|
+
```
|
|
65
117
|
|
|
66
|
-
|
|
118
|
+
### 使用 JSON 参数文件
|
|
67
119
|
|
|
68
120
|
```json
|
|
69
121
|
{
|
|
@@ -81,84 +133,170 @@ PC 模板默认启用完整的 `@robot-admin/git-standards`。也可以通过 `-
|
|
|
81
133
|
}
|
|
82
134
|
```
|
|
83
135
|
|
|
136
|
+
```bash
|
|
137
|
+
jh4j create jh4j-ui-orders --yes --config ./project-input.json
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
命令行参数的优先级高于 JSON 文件中的同名配置。
|
|
141
|
+
|
|
142
|
+
### 预览生成计划
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
jh4j create jh4j-ui-orders --yes --dry-run
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
`--dry-run` 会完成模板解析和参数校验,但不会创建项目目录。
|
|
149
|
+
|
|
150
|
+
### 安装依赖与可选步骤
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# 默认只生成项目,依赖由开发者手动安装
|
|
154
|
+
jh4j create jh4j-ui-orders --yes
|
|
155
|
+
|
|
156
|
+
# 确实需要创建后自动安装时显式指定
|
|
157
|
+
jh4j create jh4j-ui-orders --yes --install
|
|
158
|
+
|
|
159
|
+
# 跳过 Git 初始化
|
|
160
|
+
jh4j create jh4j-ui-orders --yes --skip-git
|
|
161
|
+
|
|
162
|
+
# 不启用模板提供的完整 Git 与代码质量规范
|
|
163
|
+
jh4j create jh4j-ui-orders --yes --no-standards
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
PC 与移动端模板默认启用 `git-standards` 能力。创建时不再重复确认;需要关闭时使用 `--no-standards`。
|
|
167
|
+
|
|
168
|
+
### 常用参数
|
|
169
|
+
|
|
170
|
+
| 参数 | 说明 |
|
|
171
|
+
| --- | --- |
|
|
172
|
+
| `-c, --category <category>` | 项目类型:`frontend`、`backend`、`mobile` |
|
|
173
|
+
| `-t, --template <id>` | 指定模板 ID |
|
|
174
|
+
| `--features <ids>` | 启用的模板能力,多个 ID 使用逗号分隔 |
|
|
175
|
+
| `--no-standards` | 禁用模板提供的 Git 与代码质量规范 |
|
|
176
|
+
| `--source <path-or-url>` | 强制使用指定模板目录、Git 地址或压缩包 |
|
|
177
|
+
| `--ref <branch-or-tag>` | 覆盖 Catalog 为模板配置的默认分支或标签 |
|
|
178
|
+
| `--config <json-file>` | 从 JSON 文件读取创建参数 |
|
|
179
|
+
| `--dry-run` | 校验并展示生成计划,不写入项目目录 |
|
|
180
|
+
| `--install` | 创建完成后自动安装依赖;默认不安装 |
|
|
181
|
+
| `--skip-install` | 明确不安装依赖,兼容旧命令 |
|
|
182
|
+
| `--skip-git` | 跳过 Git 初始化 |
|
|
183
|
+
| `--force` | 替换已存在的同名目录 |
|
|
184
|
+
| `--no-cache` | 不读取已有远程模板缓存 |
|
|
185
|
+
|
|
186
|
+
完整参数以命令输出为准:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
jh4j create --help
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## 生成安全性
|
|
193
|
+
|
|
194
|
+
CLI 不会直接在目标目录中边下载边修改。创建过程先在当前目录生成隐藏的 staging 目录,并依次完成:
|
|
195
|
+
|
|
196
|
+
1. 模板 Manifest 校验。
|
|
197
|
+
2. 模板初始化脚本执行。
|
|
198
|
+
3. 生成元数据校验。
|
|
199
|
+
4. staging 目录原子提升为目标目录。
|
|
200
|
+
5. Git 初始化,以及显式 `--install` 时的依赖安装。
|
|
201
|
+
|
|
202
|
+
目标目录已存在时,默认拒绝覆盖。使用 `--force` 后,CLI 会先备份旧目录;模板初始化失败时,旧目录保持不变。默认不安装依赖,避免网络或 Registry 问题阻塞项目生成。
|
|
203
|
+
|
|
84
204
|
## 模板来源
|
|
85
205
|
|
|
86
206
|
支持以下来源:
|
|
87
207
|
|
|
88
208
|
- 本地模板目录
|
|
89
|
-
- Git HTTP
|
|
90
|
-
- 本地 `.tgz`、`.tar.gz`、`.tar`
|
|
209
|
+
- Git HTTP、HTTPS、SSH 和 `file://` 地址
|
|
210
|
+
- 本地 `.tgz`、`.tar.gz`、`.tar` 文件
|
|
91
211
|
- HTTP(S) 模板压缩包
|
|
92
212
|
|
|
93
|
-
|
|
213
|
+
来源解析顺序:
|
|
94
214
|
|
|
95
215
|
```text
|
|
96
216
|
--source
|
|
97
217
|
→ 模板专属环境变量
|
|
98
218
|
→ 用户配置 templateSource
|
|
99
|
-
→ Catalog defaultSource + sources
|
|
219
|
+
→ Catalog defaultSource + sources
|
|
100
220
|
```
|
|
101
221
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
jh4j create my-app --source ./jh4j-ui-template-1.0.0.tgz
|
|
106
|
-
```
|
|
222
|
+
一旦通过 `--source`、环境变量或用户配置指定来源,该来源将作为强制来源,不再自动尝试 Catalog 中的备用源。
|
|
223
|
+
|
|
224
|
+
### 内置模板源
|
|
107
225
|
|
|
108
|
-
|
|
226
|
+
CLI 源码开发时会优先读取工作区中的 PC、移动端模板,便于联调。
|
|
227
|
+
|
|
228
|
+
从 npm 安装后按以下顺序尝试远程源:
|
|
109
229
|
|
|
110
230
|
```text
|
|
111
231
|
https://github.com/ChenyCHENYU/jh4j-ui-template.git
|
|
112
232
|
→ https://gitee.com/ycyplus163/jh4j-ui-template.git
|
|
113
233
|
```
|
|
114
234
|
|
|
115
|
-
|
|
235
|
+
移动端模板按以下顺序尝试,并默认固定到 `v1.6.0`:
|
|
116
236
|
|
|
117
|
-
```
|
|
118
|
-
|
|
237
|
+
```text
|
|
238
|
+
https://github.com/ChenyCHENYU/Robot_H5.git
|
|
239
|
+
→ https://gitee.com/ycyplus163/robot_-h5.git
|
|
119
240
|
```
|
|
120
241
|
|
|
121
|
-
|
|
242
|
+
PC 模板当前默认读取 `main`。也可以通过 `--ref` 明确固定模板版本:
|
|
122
243
|
|
|
123
|
-
|
|
244
|
+
```bash
|
|
245
|
+
jh4j create jh4j-ui-orders --ref <template-tag>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
也可以临时指定其他来源:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
jh4j create jh4j-ui-orders \
|
|
252
|
+
--source https://git.example.com/templates/jh4j-ui-template.git \
|
|
253
|
+
--ref main
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## 模板缓存
|
|
257
|
+
|
|
258
|
+
远程 Git 和压缩包模板缓存在:
|
|
259
|
+
|
|
260
|
+
```text
|
|
261
|
+
~/.jh4j/cache/templates
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
默认缓存有效期为 60 分钟。缓存键由模板 `source + ref` 计算,不同镜像和不同分支互不覆盖。
|
|
124
265
|
|
|
125
266
|
```bash
|
|
126
267
|
jh4j cache list
|
|
127
268
|
jh4j cache list --json
|
|
128
269
|
jh4j cache clear
|
|
129
|
-
jh4j create
|
|
270
|
+
jh4j create jh4j-ui-orders --no-cache
|
|
130
271
|
```
|
|
131
272
|
|
|
132
273
|
## 用户配置
|
|
133
274
|
|
|
134
|
-
|
|
275
|
+
用户配置默认保存在 `~/.jh4j/config.json`。设置 `JH4J_HOME` 可以修改 CLI 数据根目录。
|
|
135
276
|
|
|
136
277
|
```bash
|
|
137
278
|
jh4j config list
|
|
138
279
|
jh4j config get autoInstall
|
|
139
|
-
jh4j config set autoInstall
|
|
140
|
-
jh4j config set
|
|
280
|
+
jh4j config set autoInstall true
|
|
281
|
+
jh4j config set autoGit false
|
|
141
282
|
jh4j config set cacheTtlMinutes 120
|
|
142
|
-
jh4j config unset
|
|
283
|
+
jh4j config unset cacheTtlMinutes
|
|
143
284
|
jh4j config reset
|
|
144
285
|
```
|
|
145
286
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
| 配置 | 说明 |
|
|
287
|
+
| 配置项 | 说明 |
|
|
149
288
|
| --- | --- |
|
|
150
289
|
| `catalogFile` | 外部 Catalog JSON 文件 |
|
|
151
|
-
| `templateSource` |
|
|
152
|
-
| `
|
|
153
|
-
| `
|
|
154
|
-
| `
|
|
155
|
-
| `
|
|
156
|
-
| `
|
|
157
|
-
| `cacheTtlMinutes` | 模板缓存有效期,0 表示每次刷新 |
|
|
290
|
+
| `templateSource` | 全局模板源覆盖;设置后不再自动尝试 Catalog 备用源 |
|
|
291
|
+
| `npmRegistry` | npm Registry,必须能提供项目使用的企业定制包 |
|
|
292
|
+
| `jhlcRegistry` | `@jhlc` 私有 Registry |
|
|
293
|
+
| `autoInstall` | 创建后是否自动安装依赖,默认 `false`;通常保持默认即可 |
|
|
294
|
+
| `autoGit` | 创建后是否初始化 Git 仓库 |
|
|
295
|
+
| `cacheTtlMinutes` | 模板缓存有效期;`0` 表示每次刷新 |
|
|
158
296
|
|
|
159
297
|
## 外部 Catalog
|
|
160
298
|
|
|
161
|
-
通过 `JH4J_CATALOG_FILE`
|
|
299
|
+
通过 `JH4J_CATALOG_FILE` 或用户配置中的 `catalogFile` 加载外部 Catalog。相同模板 ID 会覆盖内置定义,其他 ID 会追加到模板列表。
|
|
162
300
|
|
|
163
301
|
```json
|
|
164
302
|
{
|
|
@@ -169,9 +307,9 @@ jh4j config reset
|
|
|
169
307
|
"name": "JH4J PC 微前端业务模板",
|
|
170
308
|
"description": "企业 PC 业务子系统",
|
|
171
309
|
"category": "frontend",
|
|
172
|
-
"defaultSource": "https://git.example/jh4j-ui-template.git",
|
|
310
|
+
"defaultSource": "https://git.example.com/templates/jh4j-ui-template.git",
|
|
173
311
|
"sources": [
|
|
174
|
-
"https://git-backup.example/jh4j-ui-template.git"
|
|
312
|
+
"https://git-backup.example.com/templates/jh4j-ui-template.git"
|
|
175
313
|
],
|
|
176
314
|
"sourceEnvironment": "JH4J_UI_TEMPLATE_SOURCE",
|
|
177
315
|
"defaultRef": "main",
|
|
@@ -182,23 +320,107 @@ jh4j config reset
|
|
|
182
320
|
}
|
|
183
321
|
```
|
|
184
322
|
|
|
185
|
-
|
|
323
|
+
Catalog JSON Schema 位于 [`catalog.schema.json`](./catalog.schema.json)。
|
|
324
|
+
|
|
325
|
+
## 模板接入规范
|
|
326
|
+
|
|
327
|
+
每个模板仓库至少需要提供:
|
|
328
|
+
|
|
329
|
+
```text
|
|
330
|
+
template.manifest.json # 模板 ID、版本、运行时、默认值和可选能力
|
|
331
|
+
project.config.json # 项目默认配置
|
|
332
|
+
scripts/setup-project.mjs # CLI 与直接 clone 共用的初始化入口
|
|
333
|
+
scripts/validate-template.mjs
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
模板初始化完成后必须生成 Manifest 声明的元数据文件,当前 PC 与移动端模板都使用 `.jhlc/project.json`。CLI 只有在元数据存在且模板初始化成功后才会提升 staging 目录。
|
|
337
|
+
|
|
338
|
+
校验本地模板:
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
jh4j template validate ../jh4j-ui-template
|
|
342
|
+
jh4j template validate ../../Robot_H5
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
模板列表和完整定义可通过 JSON 查看:
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
jh4j list --json
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
## 项目信息
|
|
352
|
+
|
|
353
|
+
在生成项目中查看模板与创建信息:
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
jh4j info .
|
|
357
|
+
jh4j info . --json
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
项目元数据位于 `.jhlc/project.json`,用于确认项目由哪个模板版本和 CLI 版本创建。
|
|
361
|
+
|
|
362
|
+
## 命令总览
|
|
186
363
|
|
|
187
364
|
```text
|
|
188
|
-
jh4j
|
|
189
|
-
jh4j
|
|
190
|
-
jh4j doctor [--json]
|
|
191
|
-
jh4j info [path] [--json]
|
|
192
|
-
jh4j template validate [path]
|
|
193
|
-
jh4j config list|get|set|unset|reset
|
|
194
|
-
jh4j cache list|clear
|
|
365
|
+
jh4j create [name] 创建项目
|
|
366
|
+
jh4j list [--json] 查看模板 Catalog
|
|
367
|
+
jh4j doctor [--json] 检查 Node、pnpm、Git 与模板环境
|
|
368
|
+
jh4j info [path] [--json] 查看生成项目元数据
|
|
369
|
+
jh4j template validate [path] 校验模板契约
|
|
370
|
+
jh4j config list|get|set|unset|reset 管理用户配置
|
|
371
|
+
jh4j cache list|clear 管理模板缓存
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
## 本地开发
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
git clone https://github.com/ChenyCHENYU/jh4j-cloud-cli.git
|
|
378
|
+
cd jh4j-cloud-cli
|
|
379
|
+
pnpm install
|
|
380
|
+
pnpm check
|
|
381
|
+
node bin/jh4j.js doctor
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
`pnpm check` 会依次执行 TypeScript 类型检查、自动化测试和生产构建。
|
|
385
|
+
|
|
386
|
+
发布包检查:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
npm pack --dry-run
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
## 常见问题
|
|
393
|
+
|
|
394
|
+
### 模板拉取失败
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
jh4j doctor
|
|
398
|
+
jh4j create jh4j-ui-orders --no-cache
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
先检查 GitHub、Gitee 或自定义模板源是否可访问,再检查本地 Git 代理和凭据配置。
|
|
402
|
+
|
|
403
|
+
### 手动安装依赖
|
|
404
|
+
|
|
405
|
+
项目生成完成后,确认 `.npmrc` 和内部 Registry 网络,再手动执行:
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
pnpm install
|
|
195
409
|
```
|
|
196
410
|
|
|
197
|
-
|
|
411
|
+
PC 模板包含企业定制的非 scope 依赖,默认 npm Registry 必须能够提供这些包。
|
|
412
|
+
|
|
413
|
+
### 只生成文件,不初始化 Git
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
jh4j create jh4j-ui-orders --yes --skip-git
|
|
417
|
+
```
|
|
198
418
|
|
|
199
|
-
|
|
419
|
+
### 强制使用指定模板源
|
|
200
420
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
-
|
|
204
|
-
|
|
421
|
+
```bash
|
|
422
|
+
jh4j create jh4j-ui-orders \
|
|
423
|
+
--source ./jh4j-ui-template \
|
|
424
|
+
--ref main \
|
|
425
|
+
--no-cache
|
|
426
|
+
```
|