@freelog-cli/cli2 0.5.2 → 0.5.3
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/dist/bin/index.js +438 -302
- package/dist/bin/index.js.map +1 -1
- package/dist/docs/01-/345/277/253/351/200/237/344/270/212/346/211/213.md +3 -3
- package/dist/docs/02-/346/227/245/345/270/270/350/267/257/345/276/204.md +5 -5
- package/dist/docs/03-/344/270/273/351/242/230/344/270/216/346/217/222/344/273/266.md +14 -12
- package/dist/docs/04-/347/211/210/346/234/254/345/267/245/344/275/234/347/250/277.md +9 -7
- package/dist/docs/05-/350/265/204/346/272/220/347/256/241/347/220/206.md +9 -7
- package/dist/docs/06-/345/270/270/350/247/201/346/203/205/345/206/265/344/270/216/346/212/245/351/224/231.md +4 -4
- package/dist/docs/08-/346/234/254/345/234/260/346/226/207/344/273/266/345/217/202/350/200/203.md +4 -2
- package/dist/docs/09-/346/214/211/345/234/272/346/231/257/346/223/215/344/275/234.md +32 -15
- package/dist/docs/10-/345/221/275/344/273/244/345/217/202/350/200/203.md +56 -38
- package/dist/docs/README.md +4 -4
- package/package.json +1 -1
|
@@ -32,7 +32,7 @@ freelog-cli --help
|
|
|
32
32
|
普通资源要先登录,因为资源类型来自平台的当前类型树。已知最终叶子 code 时可直接初始化:
|
|
33
33
|
|
|
34
34
|
```powershell
|
|
35
|
-
freelog-cli init . --type RT006003 --yes --env dev
|
|
35
|
+
freelog-cli init . --type RT006003 --artifact video.mp4 --yes --env dev
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
不知道 code 时先查询,或不传 `--type` 进入交互式层级选择:
|
|
@@ -41,10 +41,10 @@ freelog-cli init . --type RT006003 --yes --env dev
|
|
|
41
41
|
freelog-cli type search 视频 --env dev
|
|
42
42
|
freelog-cli type list --env dev
|
|
43
43
|
freelog-cli type info RT006003 --env dev
|
|
44
|
-
freelog-cli init . --env dev
|
|
44
|
+
freelog-cli init . --artifact video.mp4 --env dev
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
`init`
|
|
47
|
+
通用 `init` 必须用 `--artifact` 指向已经存在的本地文件;交互模式只会帮你选类型,不会扫描或猜测文件。它只写 `.freelog/1.json`,不会创建线上资源、上传文件或创建版本。
|
|
48
48
|
|
|
49
49
|
上一步已在当前目录写入 `.freelog/auth` 也可以再执行 `init .`:CLI 会保留这一个账号选择器,并拒绝覆盖任何其它已有工程内容或资源身份。
|
|
50
50
|
|
|
@@ -10,8 +10,8 @@ login → init(可选)→ create → create-version → 配策略 / 上架
|
|
|
10
10
|
|
|
11
11
|
| 阶段 | 命令 | 结果 |
|
|
12
12
|
|---|---|---|
|
|
13
|
-
| 选类型并立项 | `init [dir] --type <leaf-code>` |
|
|
14
|
-
| 建壳 | `create --title <title> --name <name> [--type <leaf-code>] [--artifact <path>]` | 创建线上资源,写入 `resourceId
|
|
13
|
+
| 选类型并立项 | `init [dir] --type <leaf-code> --artifact <path>` | 用现存产物写未绑定本地身份,不创建线上资源。主题/插件模板 `init theme/widget` 自动创建并记录 `dist`,是例外。 |
|
|
14
|
+
| 建壳 | `create --title <title> --name <name> [--type <leaf-code>] [--artifact <path>]` | 创建线上资源,写入 `resourceId`。新建本地状态时 `--artifact` 必填;接续已有未绑定状态时可复用其路径。 |
|
|
15
15
|
| 仅准备首版 | `create-version --prepare` | 上传并解析文件,留下首版工作稿。 |
|
|
16
16
|
| 提交首版 | `create-version --yes` | 提交 `1.0.0` 并清理成功的工作稿。 |
|
|
17
17
|
|
|
@@ -64,7 +64,7 @@ freelog-cli bind <resourceId 或 username/name> --artifact video.mp4 --env dev
|
|
|
64
64
|
| 没有 `latestVersion` | `create-version --prepare` 后编辑并 `create-version --yes`,发行首版。 |
|
|
65
65
|
| 已有 `latestVersion` | `version draft pull`,编辑工作稿后以 `update-version --version` 或 `--bump` 发新号。 |
|
|
66
66
|
|
|
67
|
-
主题/插件的 `<path>`
|
|
67
|
+
主题/插件的 `<path>` 可以是构建目录(`dist` / `build`)或已生成的单个文件(包括 zip);在尚无产物记录的既有项目中,`bind --artifact` 必填。
|
|
68
68
|
|
|
69
69
|
- 已有相同资源 id 时,重复 `bind` 是幂等的。
|
|
70
70
|
- 要将一份本地身份换绑到另一个资源,使用 `bind <id> --force --yes`;旧工作稿会被清理。
|
|
@@ -82,11 +82,11 @@ freelog-cli version show --local --env dev
|
|
|
82
82
|
|
|
83
83
|
## `--artifact` 的含义
|
|
84
84
|
|
|
85
|
-
一个工程可管理多份独立资源身份;每一份身份各自有一个默认 `filePath`。`--artifact`
|
|
85
|
+
一个工程可管理多份独立资源身份;每一份身份各自有一个默认 `filePath`。`--artifact` 只表示**本次选中资源**的产物路径,绝不选择资源。多份状态时统一传 `--resource id:<资源ID>`、`name:<短标识或username/name>`、唯一的 `title:<标题>`、`artifact:<已记录的相对文件或目录>`,或 AI/脚本精确使用的 `file:N.json`;不传时交互终端列出完整信息供选择,非交互会列出全部可复制候选并停止。标题可重复且会变化,人工和脚本优先使用稳定的 `id:` / `name:`,同一目录多文件可用 `artifact:`。新增本地身份的 `init` / `create` / `bind` 都用 `--artifact` 记录一个**当前已存在**的默认路径;接续已有合格身份时可复用其路径。`create-version` / `update-version` 用它指定本次文件或目录,发版产物也必须真实存在:
|
|
86
86
|
|
|
87
87
|
| 场景 | 传入的路径 |
|
|
88
88
|
|---|---|
|
|
89
89
|
| 普通资源 `--artifact` | 一个实际文件。目录会被拒绝。 |
|
|
90
|
-
| 主题 / 插件 `--artifact` |
|
|
90
|
+
| 主题 / 插件 `--artifact` | 一个构建产物目录(例如 `dist` / `build`)或已生成的单个文件(包括 zip)。目录由 CLI 临时压缩,文件直接上传。 |
|
|
91
91
|
|
|
92
92
|
发版未传 `--artifact` 时,CLI 只会在已记录路径确实存在时采用它;`--yes` 遇到缺失路径会失败,要求显式给出 `--artifact`。不支持 `--file`;一个工程可管理多份独立资源身份。
|
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
| 项目 | 主题 | 插件 | 普通文件资源 |
|
|
6
6
|
|---|---|---|---|
|
|
7
|
-
|
|
|
7
|
+
| 从官方模板初始化 | `init theme` | `init widget` | 不适用 |
|
|
8
|
+
| 接入已有本地产物 | `init --type RT001 --artifact <文件或目录>` | `init --type RT002 --artifact <文件或目录>` | `init --type <最终叶子> --artifact <文件>` |
|
|
8
9
|
| 固定类型 | `RT001` | `RT002` | 由类型树选择并在线复验 |
|
|
9
10
|
| 初始 `filePath` | `dist` 目录 | `dist` 目录 | 可无;建壳或发版时记录一个文件 |
|
|
10
11
|
| 模板元数据 | 本期不保存;模板只决定初始化时复制什么工程 | 本期不保存;模板只决定初始化时复制什么工程 | 没有 |
|
|
11
|
-
| 发版输入 |
|
|
12
|
-
| 上传前处理 | CLI 临时打 zip | CLI 临时打 zip | 直接上传原文件 |
|
|
12
|
+
| 发版输入 | 构建目录或单个文件 | 构建目录或单个文件 | 一个普通文件 |
|
|
13
|
+
| 上传前处理 | 目录由 CLI 临时打 zip;文件直接上传 | 目录由 CLI 临时打 zip;文件直接上传 | 直接上传原文件 |
|
|
13
14
|
|
|
14
15
|
## 从线上模板创建工程
|
|
15
16
|
|
|
@@ -41,11 +42,12 @@ my-theme/
|
|
|
41
42
|
|
|
42
43
|
## 接入已有主题或插件项目
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
已有项目不运行模板子命令;可以先在项目根只建立本地状态,再创建线上资源壳:
|
|
45
46
|
|
|
46
47
|
```powershell
|
|
47
48
|
freelog-cli login --env dev
|
|
48
|
-
freelog-cli
|
|
49
|
+
freelog-cli init . --type RT001 --artifact dist --yes --env dev
|
|
50
|
+
freelog-cli create --title "已有主题" --name existing-theme --yes --env dev
|
|
49
51
|
freelog-cli create-version --prepare --env dev
|
|
50
52
|
freelog-cli create-version --yes --env dev
|
|
51
53
|
```
|
|
@@ -70,7 +72,7 @@ freelog-cli update-version --bump patch --yes --env dev
|
|
|
70
72
|
|
|
71
73
|
不要在已发行资源上再运行 `create-version`,也不要在没有发行版本的资源上运行 `draft pull` / `update-version`。
|
|
72
74
|
|
|
73
|
-
|
|
75
|
+
也可以跳过 `init`,以 `create --type RT001 --artifact dist` 一步建壳;但无论哪条路径,状态写入前产物都必须已经存在。主题/插件既有项目可把 `dist` / `build` 记录为目录,也可记录已生成的单个文件;只有目录会在发版时临时压缩。不会补造元数据,也不会覆盖你的源码。
|
|
74
76
|
|
|
75
77
|
## 创建主题或插件资源壳
|
|
76
78
|
|
|
@@ -93,7 +95,7 @@ freelog-cli version set --cwd my-theme --artifact build
|
|
|
93
95
|
|
|
94
96
|
这条命令不上传、不压缩、不创建版本。目录可以暂时还不存在;真正发版时必须存在且非空。
|
|
95
97
|
|
|
96
|
-
##
|
|
98
|
+
## 发布版本:目录自动压缩,文件直接上传
|
|
97
99
|
|
|
98
100
|
```powershell
|
|
99
101
|
freelog-cli create-version --cwd my-theme --prepare --env dev
|
|
@@ -101,7 +103,7 @@ freelog-cli version show --cwd my-theme --local --env dev
|
|
|
101
103
|
freelog-cli create-version --cwd my-theme --yes --env dev
|
|
102
104
|
```
|
|
103
105
|
|
|
104
|
-
对于 `RT001` / `RT002
|
|
106
|
+
对于 `RT001` / `RT002`,若路径是 `dist` 这类目录,CLI 会把目录的**内容**打入临时 zip(不会再包一层 `dist/`),然后计算 SHA1、上传、等待解析并提交。若路径是单个文件(包括用户已准备的 zip),CLI 直接计算该文件的 SHA1、上传和提交,不会再次压缩。临时 zip 无论成功或失败都会删除,不写入工程,也不写入工作稿。
|
|
105
107
|
|
|
106
108
|
以下输入会停止:
|
|
107
109
|
|
|
@@ -110,15 +112,15 @@ freelog-cli create-version --cwd my-theme --yes --env dev
|
|
|
110
112
|
| `dist` 不存在 | 要求先生成构建产物。 |
|
|
111
113
|
| 空目录 | 要求先生成实际文件。 |
|
|
112
114
|
| 工程根目录(其中含 `.freelog/`) | 拒绝将工程根作为产物目录。 |
|
|
113
|
-
| 一个 `.zip` 或普通文件 |
|
|
115
|
+
| 一个 `.zip` 或普通文件 | 合法,直接上传;不会再次压缩。 |
|
|
114
116
|
|
|
115
|
-
后续版本与普通资源完全相同:`version draft pull` → 编辑工作稿 → `update-version --version ...` 或 `--bump
|
|
117
|
+
后续版本与普通资源完全相同:`version draft pull` → 编辑工作稿 → `update-version --version ...` 或 `--bump ...`;目录会重新生成临时 zip,文件则直接上传。当前 dev 的主题类型 `RT001` 不支持可选配置;不要把 `version option` 当作主题的固定能力。
|
|
116
118
|
|
|
117
119
|
## 这不是两套版本系统
|
|
118
120
|
|
|
119
121
|
主题/插件和普通资源都使用同一份 `N.version.json` 工作稿,版本号规则、依赖签约规则、属性校验、成功清稿和失败保留规则完全一致;可选配置仅在类型详情允许时可用。唯一的文件层差异是:
|
|
120
122
|
|
|
121
123
|
- 普通资源的 `filePath` 指向文件,文件 SHA1 即上传文件的 SHA1;
|
|
122
|
-
- 主题/插件的 `filePath`
|
|
124
|
+
- 主题/插件的 `filePath` 可指向目录或文件:目录时 SHA1 与 `filename` 指向 CLI 临时 zip,文件时二者指向原文件。
|
|
123
125
|
|
|
124
|
-
|
|
126
|
+
因此可以把已有 zip 记进 `filePath`,但不要因为主题/插件的产物形态而另建一套版本缓存。
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
工作稿只能属于已 `create` 或 `bind` 的资源。未绑定工程不能先手工攒版本稿;请先创建或接入资源。
|
|
6
6
|
|
|
7
|
+
多资源工程中,本页所有命令都加同一个 `--resource <selector>`:人工优先 `id:`、`name:` 或 `artifact:<当前文件>`,标题唯一时可用 `title:`;AI、脚本和恢复可用精确的 `file:N.json`。例如 `version draft pull --resource artifact:video.mp4` 是选择视频资源,不是上传文件。
|
|
8
|
+
|
|
7
9
|
| 要做什么 | 命令 | 是否提交线上版本 |
|
|
8
10
|
|---|---|---|
|
|
9
11
|
| 看线上版本 | `version show [--version <ver>]` | 否 |
|
|
@@ -11,7 +13,7 @@
|
|
|
11
13
|
| 从已发版本建立更新稿 | `version draft pull [--version <ver>]` | 否 |
|
|
12
14
|
| 准备首版稿 | `create-version --prepare` | 否 |
|
|
13
15
|
| 编辑稿 | `version attr` / `option` / `dep` / `version draft description` | 否;依赖签约是独立平台动作 |
|
|
14
|
-
| 丢弃稿 | `version draft discard` | 否 |
|
|
16
|
+
| 丢弃稿 | `version draft discard [--yes]` | 否 |
|
|
15
17
|
| 提交 | `create-version --yes` / `update-version --version <ver> --yes` | 是 |
|
|
16
18
|
| 改已发布版本的说明 | `version description --version <ver> --description <文本>` | 是;仅更新该已发版本说明 |
|
|
17
19
|
|
|
@@ -32,12 +34,12 @@ freelog-cli create-version --yes --env dev
|
|
|
32
34
|
已有版本时,以线上版本为底建立稿:
|
|
33
35
|
|
|
34
36
|
```powershell
|
|
35
|
-
freelog-cli version draft pull --version 1.0.0 --env dev
|
|
36
|
-
freelog-cli version draft description --description "本次更新说明" --env dev
|
|
37
|
-
freelog-cli update-version --version 1.1.0 --yes --env dev
|
|
37
|
+
freelog-cli version draft pull --resource artifact:video.mp4 --version 1.0.0 --env dev
|
|
38
|
+
freelog-cli version draft description --resource artifact:video.mp4 --description "本次更新说明" --env dev
|
|
39
|
+
freelog-cli update-version --resource artifact:video.mp4 --version 1.1.0 --yes --env dev
|
|
38
40
|
```
|
|
39
41
|
|
|
40
|
-
已有本地稿时,`version draft pull`
|
|
42
|
+
已有本地稿时,`version draft pull` 会先验证目标线上版本。TTY 显示旧稿摘要并以“否”为默认确认;脚本必须显式传 `--yes` 才能覆盖。`version draft discard` 同样先显示摘要并确认;脚本必须 `--yes`,没有工作稿时安全退出。不要通过修改 JSON 中的 `fromVersion` 换底,应该重新执行 `draft pull`。
|
|
41
43
|
|
|
42
44
|
## 两种“版本说明”不要混用
|
|
43
45
|
|
|
@@ -86,7 +88,7 @@ CLI 列出的是对方资源的全部启用策略,不按免费/付费筛选。
|
|
|
86
88
|
|
|
87
89
|
## 文件变化与恢复
|
|
88
90
|
|
|
89
|
-
发版总是以当前存在的本地文件或构建目录为准;不能用旧工作稿 SHA1 代替丢失文件。换文件时在 `create-version` / `update-version` 上给新的 `--artifact`。一个工程有多份资源时,先用 `--resource <selector>` 选中身份,再用 `--artifact
|
|
91
|
+
发版总是以当前存在的本地文件或构建目录为准;不能用旧工作稿 SHA1 代替丢失文件。换文件时在 `create-version` / `update-version` 上给新的 `--artifact`。一个工程有多份资源时,先用 `--resource <selector>` 选中身份,再用 `--artifact <新路径>`;普通资源给文件,主题/插件给文件或构建目录(仅目录会临时压缩)。新脚本不要使用 `--file`。
|
|
90
92
|
|
|
91
93
|
不要手工改 `N.version.json`。该文件有严格 schema,损坏、旧格式或身份不一致时 CLI 会保留原文件并停止;可明确丢弃工作稿,或从线上版本重新 `draft pull`。
|
|
92
94
|
|
|
@@ -105,4 +107,4 @@ freelog-cli update-version --reset --bump patch --yes --env dev
|
|
|
105
107
|
freelog-cli update-version --reuse-version 1.0.0 --version 1.1.0 --yes --env dev
|
|
106
108
|
```
|
|
107
109
|
|
|
108
|
-
`--reset`
|
|
110
|
+
`--reset` 会先校验资源路由、版本路径和产物路径;有旧稿时,TTY 显示摘要并以“否”为默认确认,脚本必须带 `--yes`。取消、无效版本号、错误的首版/更新版路径或缺失产物时,旧稿保持不动。确认后才删除旧稿并继续;若之后网络、拉取或提交失败,旧稿不会恢复,因为你已经明确放弃它。因此默认仍推荐可检查的两步:先 `version show --local`,再 `version draft discard`,确认成功后才执行下一条命令。`--reuse-version` 不会重写工作稿,它只声明本次提交认可的线上底,必须与工作稿 `fromVersion` 一致。
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
本页管理已绑定资源的线上事实:展示信息、标题同步、授权策略和可用状态。它们不替代版本发行,也不会修改未提交版本工作稿。发版看[资源生命周期](./02-日常路径.md),工作稿看[版本工作稿](./04-版本工作稿.md),所有命令的精确契约看[完整命令参考](./10-命令参考.md)。
|
|
4
4
|
|
|
5
|
+
多资源工程中,本页除不带选择器即批量的 `resource sync` 外,每条命令都加 `--resource <selector>`。优先用 `id:`、`name:` 或 `artifact:<当前文件>`;`file:N.json` 保留给 AI、脚本和恢复。
|
|
6
|
+
|
|
5
7
|
## 查看现状
|
|
6
8
|
|
|
7
9
|
```powershell
|
|
8
|
-
freelog-cli status --env dev
|
|
9
|
-
freelog-cli version show --env dev
|
|
10
|
-
freelog-cli version show --version 1.0.0 --env dev
|
|
11
|
-
freelog-cli policy list --env dev
|
|
10
|
+
freelog-cli status --resource id:<资源ID> --env dev
|
|
11
|
+
freelog-cli version show --resource id:<资源ID> --env dev
|
|
12
|
+
freelog-cli version show --resource id:<资源ID> --version 1.0.0 --env dev
|
|
13
|
+
freelog-cli policy list --resource id:<资源ID> --env dev
|
|
12
14
|
```
|
|
13
15
|
|
|
14
16
|
`status` 汇总本地身份、是否存在工作稿和线上 latest;`version show` 与 `policy list` 读取平台当前结果。若只想看本地未交内容,用 `version show --local`。
|
|
@@ -16,9 +18,9 @@ freelog-cli policy list --env dev
|
|
|
16
18
|
## 修改展示信息
|
|
17
19
|
|
|
18
20
|
```powershell
|
|
19
|
-
freelog-cli update --title "新标题" --yes --env dev
|
|
20
|
-
freelog-cli update --intro "一句话简介" --tags "教程,视频" --yes --env dev
|
|
21
|
-
freelog-cli update --cover "<封面值>" --yes --env dev
|
|
21
|
+
freelog-cli update --resource id:<资源ID> --title "新标题" --yes --env dev
|
|
22
|
+
freelog-cli update --resource id:<资源ID> --intro "一句话简介" --tags "教程,视频" --yes --env dev
|
|
23
|
+
freelog-cli update --resource id:<资源ID> --cover "<封面值>" --yes --env dev
|
|
22
24
|
```
|
|
23
25
|
|
|
24
26
|
`update` 只会发送明确给出的字段:标题、简介、封面和标签。它不会提交新版本、修改资源标识或上下架状态。
|
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
| `目标目录不是空目录,拒绝覆盖` | `init` 不会合并或覆盖已有工程。 | 选新目录,或先人工整理目录内容。已先 `login` 的当前目录例外:只存在 `.freelog/auth` 时可执行 `init .`,该选择器会被保留。 |
|
|
11
11
|
| `请选择资源类型` | 普通资源没有已验证类型,且未传 `--type`。 | 用 `type search` / 交互式 `init` 选择最终叶子,或传精确 code。 |
|
|
12
12
|
| 主题/插件类型固定 | 在模板工程创建壳时试图以不同 `--type` 覆盖 `RT001` / `RT002`。 | 移除 `--type`;模板工程会使用记录的固定类型。 |
|
|
13
|
-
| `当前工程有多份资源状态;请使用 --resource 指定资源` | 一个工程存在多份资源身份,CLI 无法猜测目标。 | 交互终端从显示的文件名、标题、短标识、资源 ID
|
|
13
|
+
| `当前工程有多份资源状态;请使用 --resource 指定资源` | 一个工程存在多份资源身份,CLI 无法猜测目标。 | 交互终端从显示的文件名、标题、短标识、资源 ID、类型、产物路径和工作稿状态中选择;非交互错误会逐份列出可复制的 `id:`、`name:`、唯一 `title:`、`artifact:` 和 `file:N.json`。 |
|
|
14
14
|
| `本地文件不在` / `请 --artifact 指定本地文件或目录` | 记录的文件或构建目录不存在。 | 生成或找到实际产物,再传 `--artifact`;多资源时另传 `--resource` 选身份,不能复用旧 SHA1。 |
|
|
15
15
|
| `不支持文件夹` | 普通资源给了目录。 | 传一个实际文件。 |
|
|
16
|
-
| `主题/插件请指定构建产物目录,不要自己打 zip` | 主题/插件给了 zip 或普通文件。 | 传 `dist` / `build` 这类非空构建目录。 |
|
|
17
16
|
| `构建产物是空的` | 目录内没有可压缩文件。 | 先完成工程自己的构建流程。 |
|
|
18
17
|
| 已经有发行版本,请用 `update-version` | 对已有版本的资源调用了 `create-version`。 | 用 `version draft pull` 后运行 `update-version`。 |
|
|
19
18
|
| 还没有发行版本,请先 `create-version` | 对首版资源调用了 `update-version` 或 `draft pull`。 | 使用 `create-version --prepare` 或 `create-version --yes`。 |
|
|
20
19
|
| 工作稿与身份不一致 / 不支持 schemaVersion=1 | 本地工作稿损坏、过期或属于另一资源。 | 保留原文件以便检查;明确 `version draft discard`,或从线上 `draft pull` 重建。 |
|
|
21
20
|
| 工作稿来源不是当前 latest | 线上已有新版本,而本地稿仍基于其它版本。 | 优先检查后用 `version draft pull --yes` 重建;确认要继续使用原底时,在 `update-version` 上明确传匹配的 `--reuse-version <版本>`。 |
|
|
22
|
-
|
|
|
21
|
+
| `有未提交工作稿;请加 --yes 确认…` | 脚本试图丢弃或覆盖工作稿,却没有显式确认。 | 检查目标资源后重试并加 `--yes`;交互终端可阅读摘要后确认或取消。 |
|
|
22
|
+
| 想重来但不想手工删 JSON | 当前首版稿或更新稿确认不要。 | 默认先 `version show --local`,再 `version draft discard`(TTY 确认;脚本加 `--yes`),最后执行下一步;`--reset` 会先校验再确认,确认后的后续失败不会恢复旧稿。 |
|
|
23
23
|
| `当前类型不支持可选配置` | 类型详情不允许可选配置;主题并不天然支持它。 | 不执行 `version option`;只编辑当前类型允许的字段。 |
|
|
24
24
|
| `--yes` 缺少 title / name / type | 脚本模式没有提供必要输入。 | 无工程类型时给 `--type`;已有 init 身份时给 `--title`、`--name` 即可。 |
|
|
25
25
|
| 依赖要求 `--policy-id` | 非交互依赖签约不能替你选择对方策略。 | 先列策略或在交互中选择,再传精确 `--policy-id`。 |
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
- 不要只删除 `N.json` 或只删除 `N.version.json`。确需放弃一份本地状态时,先备份,再删除同号的完整状态单元(`N.json` 与 `N.version.json`);未提交工作稿会永久丢失,之后可在空位重新 `bind`。
|
|
32
32
|
- 不要复制或编辑 `.freelog/auth`;该文件不含可移植秘密,真正的凭据在当前操作系统的凭据库中。
|
|
33
|
-
-
|
|
33
|
+
- 主题/插件给目录时由 CLI 临时压缩;若已有 zip 或其它单个产物文件,可直接作为 `--artifact` 提交,不会再次压缩。
|
|
34
34
|
- 不要在失败后重新运行 `create` 试图补救已有线上壳;先用 `bind` 接入已有资源。
|
|
35
35
|
- 不要用旧命令参数 `--scaffold` 或把 `--resource-type` 当作常规接口;前者不存在,后者仅为弃用兼容。
|
|
36
36
|
|
package/dist/docs/08-/346/234/254/345/234/260/346/226/207/344/273/266/345/217/202/350/200/203.md
CHANGED
|
@@ -36,11 +36,13 @@ my-project/
|
|
|
36
36
|
| `typeCode` | 普通资源是已验证的最终叶子;主题/插件固定为 `RT001` / `RT002`。 |
|
|
37
37
|
| `resourceId` 与 `name` | 绑定后成对出现;`name` 是当前账号命名空间内不可重复的短标识。未绑定 `init` 身份不应预写。 |
|
|
38
38
|
| `title` | 创建、bind 或 `resource sync` 写入的本地展示/选择信息;标题可重复且会变化,不是线上写入依据。旧状态可缺少该字段,选择列表显示“未同步标题”。 |
|
|
39
|
-
| `filePath` | 相对工程根目录、以 `/`
|
|
39
|
+
| `filePath` | 相对工程根目录、以 `/` 分隔。普通资源是文件路径;主题/插件可以是构建目录(例如 `dist`)或单个文件(包括 zip);绝对路径与 `..` 越界路径不合法。 |
|
|
40
40
|
| `env` | 非 prod 的已绑定资源会记录 `dev` 或 `test`。 |
|
|
41
41
|
|
|
42
42
|
这里不保存标签、策略、已发版本、SHA1、`artifactMode` 或秘密凭据;这些信息分别属于平台、工作稿或系统凭据库。标题是唯一例外:它作为可过期的本地选择/展示缓存保存,可由 `resource sync` 更新。
|
|
43
43
|
|
|
44
|
+
`N.json` 不要求用户手工记编号。所有单资源命令可用 `--resource id:<资源ID>`、`name:<标识>`、唯一的 `title:<标题>` 或 `artifact:<filePath>` 选中它;`file:N.json` 是仍完整支持的精确状态文件形式,适合 AI、脚本和恢复。
|
|
45
|
+
|
|
44
46
|
## `N.version.json`:未提交工作稿
|
|
45
47
|
|
|
46
48
|
工作稿始终包含资源 id、资源类型、稿类型(`initial` / `update`)、文件 SHA、分析 SHA、属性、可选配置、依赖及恒为空的兼容字段。它只在资源已创建或 bind 后出现。
|
|
@@ -65,7 +67,7 @@ my-project/
|
|
|
65
67
|
}
|
|
66
68
|
```
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
主题/插件使用目录时,这里记录 CLI 临时 zip 的 `filename` / SHA1;使用单个文件时记录原文件的 `filename` / SHA1。身份里的 `filePath` 保留用户选择的目录或文件。普通资源始终记录原文件的 `filename` / SHA1。
|
|
69
71
|
|
|
70
72
|
## `index.json`、`.lock` 与 `.txn.json`
|
|
71
73
|
|
|
@@ -2,27 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
本页是决策入口:先判断资源是否已经在线上存在、是否已经发行过版本、当前工程是否已有 `.freelog/` 身份,再复制对应路径。不要把 `init`、`create`、`bind` 当成同义词:它们分别是立项、建线上资源壳、接入已有线上资源。需要解释命令语义时回到专题页;需要完整参数和副作用时查[完整命令参考](./10-命令参考.md)。
|
|
4
4
|
|
|
5
|
-
所有例子以 `--env dev`
|
|
5
|
+
所有例子以 `--env dev` 为例;多资源工程中,除新增或接续身份的 `create` / `bind` 外,每一条涉及某资源的命令都补上 `--resource <selector>`;产物始终用 `--artifact <path>`。
|
|
6
6
|
|
|
7
7
|
## 先选入口
|
|
8
8
|
|
|
9
9
|
| 你现在的情况 | 从这里开始 | 不要做 |
|
|
10
10
|
|---|---|---|
|
|
11
|
-
|
|
|
12
|
-
| 已有普通文件工程、没有线上资源 | `create --type <最终叶子> --artifact <文件>` | 为了建壳强行覆盖工程执行 `init`。 |
|
|
11
|
+
| 已有普通文件、资源还未上线 | `init --type <最终叶子> --artifact <文件>`,再 `create`;也可直接 `create --type … --artifact …` | 把父类型或类型名称交给 `--type`,或让状态没有产物路径。 |
|
|
13
12
|
| 空目录,要从官方主题/插件模板开始 | `init theme|widget <目录> --template <id>` | 选择资源类型,或手工复制本地模板。 |
|
|
14
|
-
| 已有主题/插件工程、没有线上资源 | `
|
|
13
|
+
| 已有主题/插件工程、没有线上资源 | `init --type RT001|RT002 --artifact <文件或目录>`,再 `create`;也可直接 `create` | 运行会复制模板的 `init theme/widget`,或让 CLI 再压已准备的 zip。 |
|
|
15
14
|
| 线上有自己的壳但没有发行版本 | `bind <资源ID或username/name> --artifact <文件或构建目录>`,再 `create-version` | 再次 `create`。 |
|
|
16
15
|
| 线上已有发行版本 | `bind <资源ID或username/name> --artifact <文件或构建目录>`,再 `version draft pull` 和 `update-version` | 用 `create-version` 再发 1.0.0。 |
|
|
17
16
|
| 已有本地身份和未提交工作稿 | `version show --local` 后继续编辑或丢稿 | 手工编辑工作稿 JSON。 |
|
|
18
|
-
| 同一工程有多份资源身份 | 先用 `status --resource
|
|
17
|
+
| 同一工程有多份资源身份 | 先用 `status --resource id:<资源ID>`、`name:<标识>` 或 `artifact:<文件>` 确认目标,再在后续命令沿用同一 `--resource` | 用 `--artifact` 上传参数、标题或状态文件顺序猜测目标。 |
|
|
19
18
|
| 只改展示信息、策略或上下架 | 进入资源管理命令 | 为此创建新版本或新资源壳。 |
|
|
20
19
|
|
|
21
20
|
## 场景一:从空目录发行普通文件首版
|
|
22
21
|
|
|
23
22
|
```powershell
|
|
24
23
|
freelog-cli login --env dev
|
|
25
|
-
freelog-cli init . --type RT006003 --yes --env dev
|
|
24
|
+
freelog-cli init . --type RT006003 --artifact video.mp4 --yes --env dev
|
|
26
25
|
freelog-cli create --title "我的视频" --name my-video --artifact video.mp4 --yes --env dev
|
|
27
26
|
freelog-cli create-version --prepare --env dev
|
|
28
27
|
freelog-cli version show --local --env dev
|
|
@@ -42,7 +41,24 @@ freelog-cli create-version --prepare --env dev
|
|
|
42
41
|
freelog-cli create-version --yes --env dev
|
|
43
42
|
```
|
|
44
43
|
|
|
45
|
-
`create`
|
|
44
|
+
`create` 在建壳前确认 `--artifact` 指向工程内真实文件;它不上传文件。空文件、大小限制或内容解析等发行校验仍会在 `create-version` 停止,线上不会出现半个版本。
|
|
45
|
+
|
|
46
|
+
### 同一素材目录连续发行多个独立资源
|
|
47
|
+
|
|
48
|
+
不需要为每个视频、图片另建工程目录。一个素材目录可以依次为每个文件建立一份资源身份:
|
|
49
|
+
|
|
50
|
+
```powershell
|
|
51
|
+
# media/ 下同时有 video.mp4 与 cover.jpg
|
|
52
|
+
freelog-cli create --title "视频" --name my-video --type <视频叶子code> --artifact video.mp4 --yes --env dev
|
|
53
|
+
# 写入 .freelog/1.json,filePath=video.mp4
|
|
54
|
+
freelog-cli create --title "封面图" --name my-cover --type <图片叶子code> --artifact cover.jpg --yes --env dev
|
|
55
|
+
# 写入 .freelog/2.json,filePath=cover.jpg
|
|
56
|
+
|
|
57
|
+
freelog-cli create-version --resource artifact:video.mp4 --prepare --env dev
|
|
58
|
+
freelog-cli create-version --resource artifact:cover.jpg --prepare --env dev
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
第二次 `create` 不会要求选择或覆盖 `1.json`:在没有未绑定状态时,它新增下一个编号。后续发版、状态、上下架等操作才用 `--resource` 精确选择其中一份;可用 `id:`、`name:`、唯一 `title:`、`artifact:` 或 AI/脚本使用的 `file:N.json`。`--artifact` 从不承担资源选择职责。
|
|
46
62
|
|
|
47
63
|
## 场景三:从官方模板创建主题或插件并发行首版
|
|
48
64
|
|
|
@@ -60,17 +76,18 @@ freelog-cli create-version --cwd my-theme --yes --env dev
|
|
|
60
76
|
|
|
61
77
|
## 场景四:已有主题或插件工程,创建首版资源
|
|
62
78
|
|
|
63
|
-
|
|
79
|
+
既有项目不运行会复制模板的 `init theme`,也没有必要补造模板元数据。先明确其固定类型和构建目录:
|
|
64
80
|
|
|
65
81
|
```powershell
|
|
66
82
|
freelog-cli login --env dev
|
|
67
|
-
freelog-cli
|
|
83
|
+
freelog-cli init . --type RT001 --artifact dist --yes --env dev
|
|
84
|
+
freelog-cli create --title "已有主题" --name existing-theme --yes --env dev
|
|
68
85
|
# 自己完成构建后
|
|
69
86
|
freelog-cli create-version --prepare --env dev
|
|
70
87
|
freelog-cli create-version --yes --env dev
|
|
71
88
|
```
|
|
72
89
|
|
|
73
|
-
|
|
90
|
+
插件在 init 使用 `--type RT002`。也可直接 `create --type RT001|RT002 --artifact dist` 一步建壳。`dist` / `build` 是目录时,CLI 仅在提交前临时压缩其中内容;若指定已有 zip 或其它文件,则直接上传并可记录到 `filePath`。
|
|
74
91
|
|
|
75
92
|
## 场景五:自己的线上资源未发行,在本地补接后发首版
|
|
76
93
|
|
|
@@ -81,7 +98,7 @@ freelog-cli create-version --prepare --env dev
|
|
|
81
98
|
freelog-cli create-version --yes --env dev
|
|
82
99
|
```
|
|
83
100
|
|
|
84
|
-
主题/插件把 `video.mp4` 换成 `dist`
|
|
101
|
+
主题/插件把 `video.mp4` 换成 `dist`、`build` 或已有 zip。`bind` 会从平台读取类型;对主题/插件,没有已记录产物时须传 `--artifact`。
|
|
85
102
|
|
|
86
103
|
## 场景六:自己的线上资源已发行,在本地接入并发新版本
|
|
87
104
|
|
|
@@ -97,9 +114,9 @@ freelog-cli update-version --bump patch --yes --env dev
|
|
|
97
114
|
|
|
98
115
|
## 场景七:构建路径、工作稿或多资源工程发生变化
|
|
99
116
|
|
|
100
|
-
- 构建输出从 `dist` 变成 `build`:单份资源用 `version set --artifact build`;多份资源用 `version set --resource
|
|
117
|
+
- 构建输出从 `dist` 变成 `build`:单份资源用 `version set --artifact build`;多份资源用 `version set --resource artifact:dist --artifact build`。只更新记录,不上传也不提交。
|
|
101
118
|
- 文件或目录不存在:先恢复真实产物;CLI 不会复用旧 SHA1 发新版本。
|
|
102
|
-
- 一个工程中有多份身份:`create-version`、`update-version`、`version draft pull` 等既有资源操作传对应的 `--resource`;不传时 TTY 可选择,非交互会停止,不会猜第一份。`create`、`bind` 例外:它们可在没有未绑定状态时新增 `N.json
|
|
119
|
+
- 一个工程中有多份身份:`create-version`、`update-version`、`version draft pull` 等既有资源操作传对应的 `--resource id:<ID>`、`name:<标识>`、`artifact:<当前文件>` 或 AI/脚本使用的 `file:N.json`;不传时 TTY 可选择,非交互会停止,不会猜第一份。`create`、`bind` 例外:它们可在没有未绑定状态时新增 `N.json`;要接续某份未绑定状态时优先传 `--resource artifact:<当前文件>`,没有可用产物路径时才用 `file:N.json`。发版要换产物时再传独立的 `--artifact <新路径>`。
|
|
103
120
|
- 想从另一线上版本重新开始:`version draft pull --version <版本> --yes`;这会覆盖当前未提交工作稿,先看命令打印的摘要。
|
|
104
121
|
|
|
105
122
|
## 场景八:版本表单、依赖和上线
|
|
@@ -117,7 +134,7 @@ freelog-cli version show --version 1.1.0 --env dev
|
|
|
117
134
|
freelog-cli version description --version 1.1.0 --description "补充发布说明" --env dev
|
|
118
135
|
```
|
|
119
136
|
|
|
120
|
-
这与 `version draft description` 不同:后者只修改尚未提交的更新稿。多资源工程在两条命令上都传相同的 `--resource
|
|
137
|
+
这与 `version draft description` 不同:后者只修改尚未提交的更新稿。多资源工程在两条命令上都传相同的 `--resource id:<资源ID>`、`name:<标识>` 或 `artifact:<文件>`。
|
|
121
138
|
|
|
122
139
|
## 场景十:更新稿过期,选择重建或继续旧底
|
|
123
140
|
|
|
@@ -135,4 +152,4 @@ freelog-cli update-version --bump patch --yes --env dev
|
|
|
135
152
|
freelog-cli update-version --reuse-version 1.0.0 --version 1.1.0 --yes --env dev
|
|
136
153
|
```
|
|
137
154
|
|
|
138
|
-
若工作稿本身不要了,可把前两步改为 `update-version --reset --bump patch --yes
|
|
155
|
+
若工作稿本身不要了,可把前两步改为 `update-version --reset --bump patch --yes`;它会先校验路径与版本号,确认后才删除当前稿并重新建立。TTY 可阅读摘要后确认;确认后的网络或提交失败不会恢复旧稿,不要把它当成无损刷新。
|
|
@@ -2,7 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
本页是发布包内的命令索引:列出当前 CLI 的全部公开命令、何时使用以及它会不会改变线上资源或本地文件。首次完成任务请优先看[按场景操作](./09-按场景操作.md);执行已知命令、编写脚本或排查影响时以本页为准。
|
|
4
4
|
|
|
5
|
-
所有示例省略 `freelog-cli` 前缀后的公共参数。推荐每次显式传 `--env dev` 或 `--env test
|
|
5
|
+
所有示例省略 `freelog-cli` 前缀后的公共参数。推荐每次显式传 `--env dev` 或 `--env test`。除 `login`、`logout`、`init`、`template`、`type`、新增/接续生命周期的 `create` / `bind` 与批量 `resource sync` 外,**本页每一条命令都接受并在多资源工程中需要** `--resource <selector>`。`--yes` 只跳过交互确认,不会放宽校验。详细选择规则见[首页](./README.md#多资源工程先选身份再给产物)。
|
|
6
|
+
|
|
7
|
+
## 公共资源匹配参数
|
|
8
|
+
|
|
9
|
+
一个目录可有多个视频、图片或其它资源;用户不需要记住 `.freelog/2.json`。对任何常规单资源命令使用同一个参数:
|
|
10
|
+
|
|
11
|
+
```powershell
|
|
12
|
+
--resource id:<资源ID> # 最稳定,推荐
|
|
13
|
+
--resource name:<username/短标识> # 最稳定,推荐
|
|
14
|
+
--resource title:<资源标题> # 标题唯一时可用
|
|
15
|
+
--resource artifact:<相对文件或目录> # 例如 artifact:video.mp4
|
|
16
|
+
--resource file:N.json # AI、脚本、恢复时的精确状态文件
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
`--resource artifact:video.mp4` 是**选择**已记录为 `video.mp4` 的资源;发行命令中的 `--artifact video-v2.mp4` 才是本次上传新文件。二者可以同时出现。单份状态自动选择;多份状态在 TTY 展示标题、标识符、ID、产物和工作稿供选择,非交互则列出上述可复制候选并停止。标题重复时使用 `id:`、`name:`、`artifact:` 或 `file:`。
|
|
6
20
|
|
|
7
21
|
## 发现命令与获得帮助
|
|
8
22
|
|
|
@@ -21,7 +35,7 @@ freelog-cli --cli-version
|
|
|
21
35
|
|---|---|---|
|
|
22
36
|
| `login [--global]` | 登录当前工作区;脚本可用 `--login-name`、`--password-stdin --yes`。 | 将秘密写入系统凭据库,并写入工作区或全局选择器。 |
|
|
23
37
|
| `logout [--global]` | 切换账号或清除本地登录选择。 | 只清选择器及明确孤立的凭据;不删除工程或线上资源。 |
|
|
24
|
-
| `init [dir] [--type <叶子类型>]
|
|
38
|
+
| `init [dir] [--type <叶子类型>] --artifact <路径>` | 用已存在的普通文件,或主题/插件的文件/目录,创建未绑定本地身份。 | 新建未绑定 `N.json`,不创建线上资源;不会扫描或猜测产物。 |
|
|
25
39
|
| `init theme <dir> [--template <id>]` | 从主题模板创建新工程。 | 固定主题类型 `RT001` 与默认构建目录 `dist`。 |
|
|
26
40
|
| `init widget <dir> [--template <id>]` | 从插件模板创建新工程。 | 固定插件类型 `RT002` 与默认构建目录 `dist`。 |
|
|
27
41
|
| `template list` | 查看可用于主题/插件初始化的模板。 | 只读。 |
|
|
@@ -34,62 +48,66 @@ freelog-cli --cli-version
|
|
|
34
48
|
|
|
35
49
|
| 命令 | 何时使用 | 影响 |
|
|
36
50
|
|---|---|---|
|
|
37
|
-
| `create --title <标题> --name <短标识> [--type <叶子类型>] [--artifact <路径>]` |
|
|
38
|
-
| `bind <资源ID或username/name> [--artifact <路径>] [--force --yes]` | 线上已有且属于当前账号的资源,需要接入本地工程。 | 从平台读取身份,写入或接续一份 `N.json`;不拉版本、不上传。 |
|
|
39
|
-
| `status` | 想同时确认选中资源的本地身份、工作稿和线上状态。 | 只读。 |
|
|
51
|
+
| `create --title <标题> --name <短标识> [--type <叶子类型>] [--artifact <路径>] [--resource <selector>]` | 线上还没有该资源壳时创建它。已有唯一未绑定身份时会接续它;没有未绑定身份时新增一份本地状态。多份未绑定身份时用选择器指定要接续的那份。 | 创建线上资源壳并写入 `resourceId`;只记录产物路径,不上传、不发版、不上架。 |
|
|
52
|
+
| `bind <资源ID或username/name> [--artifact <路径>] [--resource <selector>] [--force --yes]` | 线上已有且属于当前账号的资源,需要接入本地工程。 | 从平台读取身份,写入或接续一份 `N.json`;不拉版本、不上传。 |
|
|
53
|
+
| `status [--resource <selector>]` | 想同时确认选中资源的本地身份、工作稿和线上状态。 | 只读。 |
|
|
40
54
|
| `resource sync [--resource <selector>]` | 网页或其它机器改过标题,需要刷新本地标题。 | 不传选择器时批量按资源 ID 同步当前环境全部绑定身份的 `title`;传选择器时只同步一份。 |
|
|
41
|
-
| `version set --artifact
|
|
55
|
+
| `version set --artifact <路径> [--resource <selector>]` | 文件改名、构建目录从 `dist` 变成 `build`,只想更新默认路径。 | 只改选中 `N.json.filePath`;不上传、不提交。 |
|
|
42
56
|
|
|
43
57
|
`--name` 是当前账号命名空间中不可重复、创建后不可改的短标识;`--title` 是可修改且可重复的展示名称。创建后的标题用 `update --title` 修改;本地标题用 `resource sync` 对齐。
|
|
44
58
|
|
|
45
59
|
## 版本:查看、工作稿与提交
|
|
46
60
|
|
|
61
|
+
本节每条命令均可加 `[--resource <selector>]`;多资源工程中不传时按上文公共规则选择或停止。
|
|
62
|
+
|
|
47
63
|
| 命令 | 何时使用 | 影响 |
|
|
48
64
|
|---|---|---|
|
|
49
|
-
| `version show [--version <已发号>]` | 查看线上 latest 或指定已发行版本。 | 只读,不覆盖本地工作稿。 |
|
|
50
|
-
| `version show --local` | 查看未提交工作稿。 | 只读;没有工作稿会提示失败。 |
|
|
51
|
-
| `version draft pull [--version <已发号>]` | 已有线上版本,基于 latest 或指定版本建立更新稿。 | 写入 `N.version.json
|
|
52
|
-
| `version draft pull --yes` | 明确放弃当前工作稿,重新拉取版本。 |
|
|
53
|
-
| `version draft discard` | 明确放弃当前工作稿。 |
|
|
54
|
-
| `version draft description --description
|
|
55
|
-
| `version description --version <已发号> --description
|
|
56
|
-
| `version attr add|set|rm|list` | 维护工作稿的自定义属性。 | 写操作只改工作稿;`list` 只读。 |
|
|
57
|
-
| `version option add|set|rm|list` | 维护工作稿的可选配置。 | 写操作只改工作稿;仅资源类型允许时可用。 |
|
|
58
|
-
| `version dep add|range|rm|list` | 维护工作稿中的依赖及版本范围。 | 写操作只改工作稿;首次签约可能产生独立平台授权动作。 |
|
|
59
|
-
| `create-version --prepare [--artifact <路径>]` | 尚无已发版本时上传分析并建立首版工作稿。 | 写工作稿,不提交线上版本。 |
|
|
60
|
-
| `create-version --yes [--artifact <路径>]` | 尚无已发版本时提交固定的 `1.0.0`。 | 上传并提交首版;成功后删除工作稿并回写有效产物路径。 |
|
|
61
|
-
| `create-version --reset
|
|
62
|
-
| `update-version --version <新号> --yes [--artifact <路径>]` | 已有线上版本,指定后续版本号并提交。 | 上传并提交新版本;成功后删除工作稿。 |
|
|
63
|
-
| `update-version --bump patch|minor|major --yes` | 已有线上版本,按 latest 自动计算新版本号。 | 与上条相同;不能和 `--version` 同用。 |
|
|
64
|
-
| `update-version --reuse-version <已发号>
|
|
65
|
-
| `update-version --reset
|
|
66
|
-
|
|
67
|
-
首版只能使用 `create-version`,已有版本只能使用 `update-version`。`--artifact`
|
|
65
|
+
| `version show [--version <已发号>] [--resource <selector>]` | 查看线上 latest 或指定已发行版本。 | 只读,不覆盖本地工作稿。 |
|
|
66
|
+
| `version show --local [--resource <selector>]` | 查看未提交工作稿。 | 只读;没有工作稿会提示失败。 |
|
|
67
|
+
| `version draft pull [--version <已发号>] [--resource <selector>]` | 已有线上版本,基于 latest 或指定版本建立更新稿。 | 写入 `N.version.json`;有旧稿时 TTY 默认不覆盖并确认,脚本须 `--yes`。 |
|
|
68
|
+
| `version draft pull --yes [--resource <selector>]` | 明确放弃当前工作稿,重新拉取版本。 | 校验目标线上版本后覆盖工作稿;先打印即将丢失的摘要。 |
|
|
69
|
+
| `version draft discard [--yes] [--resource <selector>]` | 明确放弃当前工作稿。 | TTY 显示摘要并默认不删;脚本须 `--yes`。确认后删除选中 `N.version.json`;没有稿时安全退出。 |
|
|
70
|
+
| `version draft description --description <文本> [--resource <selector>]` | 修改**更新工作稿**的版本说明。 | 只写工作稿;不发新版本。 |
|
|
71
|
+
| `version description --version <已发号> --description <文本> [--resource <selector>]` | 修改一个**已发布版本**的说明,而不创建新版本。 | 唯一直接更新线上版本信息的命令;不写工作稿。 |
|
|
72
|
+
| `version attr add|set|rm|list [--resource <selector>]` | 维护工作稿的自定义属性。 | 写操作只改工作稿;`list` 只读。 |
|
|
73
|
+
| `version option add|set|rm|list [--resource <selector>]` | 维护工作稿的可选配置。 | 写操作只改工作稿;仅资源类型允许时可用。 |
|
|
74
|
+
| `version dep add|range|rm|list [--resource <selector>]` | 维护工作稿中的依赖及版本范围。 | 写操作只改工作稿;首次签约可能产生独立平台授权动作。 |
|
|
75
|
+
| `create-version --prepare [--artifact <路径>] [--resource <selector>]` | 尚无已发版本时上传分析并建立首版工作稿。 | 写工作稿,不提交线上版本。 |
|
|
76
|
+
| `create-version --yes [--artifact <路径>] [--resource <selector>]` | 尚无已发版本时提交固定的 `1.0.0`。 | 上传并提交首版;成功后删除工作稿并回写有效产物路径。 |
|
|
77
|
+
| `create-version --reset ... [--resource <selector>]` | 首版工作稿确认不要了,直接从空表重新走本次命令。 | 先校验路由和产物;有稿时确认后才丢弃。确认后的后续失败不会恢复旧稿。 |
|
|
78
|
+
| `update-version --version <新号> --yes [--artifact <路径>] [--resource <selector>]` | 已有线上版本,指定后续版本号并提交。 | 上传并提交新版本;成功后删除工作稿。 |
|
|
79
|
+
| `update-version --bump patch|minor|major --yes [--resource <selector>]` | 已有线上版本,按 latest 自动计算新版本号。 | 与上条相同;不能和 `--version` 同用。 |
|
|
80
|
+
| `update-version --reuse-version <已发号> ... [--resource <selector>]` | 工作稿的底不是当前 latest,且明确以该已发号为底提交。 | 只改变本次提交认可的底;工作稿来源必须匹配。 |
|
|
81
|
+
| `update-version --reset ... [--resource <selector>]` | 当前更新稿确认不要了,要丢掉并按本次指定底重新拉取后继续。 | 先校验路由、新号和产物;有稿时确认后才删除。确认后的后续失败不会恢复旧稿。 |
|
|
82
|
+
|
|
83
|
+
首版只能使用 `create-version`,已有版本只能使用 `update-version`。`--artifact` 在发行命令中是本次上传的真实文件/构建目录;普通资源必须是文件,主题/插件可以是文件或非空构建目录:目录临时压缩,文件(包括 zip)直接上传。不要把 `version draft description` 与 `version description` 混用:前者改未提交更新稿,后者改已发布版本。
|
|
68
84
|
|
|
69
85
|
属性、配置和依赖的子命令都以工作稿为目标。没有工作稿时,已有线上版本先 `version draft pull`;首版要先 `create-version --prepare`。依赖在非交互模式还须明确 `--policy-id <策略ID> --yes`,CLI 不会代选对方策略。
|
|
70
86
|
|
|
71
87
|
## 展示信息、策略与上下架
|
|
72
88
|
|
|
89
|
+
本节每条命令均可加 `[--resource <selector>]`;多资源工程中不传时按上文公共规则选择或停止。
|
|
90
|
+
|
|
73
91
|
| 命令 | 何时使用 | 影响 |
|
|
74
92
|
|---|---|---|
|
|
75
|
-
| `update [--title] [--intro] [--cover] [--tags] --yes` | 只修改资源展示信息。 | 更新线上 listing;不发版、不改标识、不上下架。 |
|
|
76
|
-
| `policy list` | 查看当前资源的授权策略。 | 只读。 |
|
|
77
|
-
| `policy template list [--page <n> --page-size <n>]` | 查看当前资源类型可套用的策略模板。 | 只读。 |
|
|
78
|
-
| `policy template apply [templateId] [--name]` | 套用一条平台模板并启用。交互可选择;脚本必须给 `<templateId> --yes`。 | 新增并启用一条策略;不付款、不上架。 |
|
|
79
|
-
| `policy apply --from-file <路径> [--name] --yes` | 从策略文本或 JSON 文件新增策略。 | 新增并启用一条策略;策略语义由平台校验。 |
|
|
80
|
-
| `policy set --id <策略ID> --on|--off` | 启用或停用某条策略。 | 更新线上策略状态;已上架资源不能停用到零条启用策略。 |
|
|
81
|
-
| `validate --for online` | 上架前预检版本和策略条件。 | 只读。 |
|
|
82
|
-
| `online` | 资源有已发版本和至少一条启用策略后上架。 | 更新线上可用状态。 |
|
|
83
|
-
| `offline` | 暂停线上可用状态。 | 只下架,不删除版本、策略、资源或本地文件。 |
|
|
93
|
+
| `update [--title] [--intro] [--cover] [--tags] --yes [--resource <selector>]` | 只修改资源展示信息。 | 更新线上 listing;不发版、不改标识、不上下架。 |
|
|
94
|
+
| `policy list [--resource <selector>]` | 查看当前资源的授权策略。 | 只读。 |
|
|
95
|
+
| `policy template list [--page <n> --page-size <n>] [--resource <selector>]` | 查看当前资源类型可套用的策略模板。 | 只读。 |
|
|
96
|
+
| `policy template apply [templateId] [--name] [--resource <selector>]` | 套用一条平台模板并启用。交互可选择;脚本必须给 `<templateId> --yes`。 | 新增并启用一条策略;不付款、不上架。 |
|
|
97
|
+
| `policy apply --from-file <路径> [--name] --yes [--resource <selector>]` | 从策略文本或 JSON 文件新增策略。 | 新增并启用一条策略;策略语义由平台校验。 |
|
|
98
|
+
| `policy set --id <策略ID> --on|--off [--resource <selector>]` | 启用或停用某条策略。 | 更新线上策略状态;已上架资源不能停用到零条启用策略。 |
|
|
99
|
+
| `validate --for online [--resource <selector>]` | 上架前预检版本和策略条件。 | 只读。 |
|
|
100
|
+
| `online [--resource <selector>]` | 资源有已发版本和至少一条启用策略后上架。 | 更新线上可用状态。 |
|
|
101
|
+
| `offline [--resource <selector>]` | 暂停线上可用状态。 | 只下架,不删除版本、策略、资源或本地文件。 |
|
|
84
102
|
|
|
85
103
|
## 脚本最小安全模板
|
|
86
104
|
|
|
87
105
|
脚本必须显式选择环境;工程有多份状态时也必须显式选择资源。先做只读检查,再执行写操作:
|
|
88
106
|
|
|
89
107
|
```powershell
|
|
90
|
-
freelog-cli status --cwd <工程> --resource
|
|
91
|
-
freelog-cli version show --cwd <工程> --resource
|
|
92
|
-
freelog-cli update-version --cwd <工程> --resource
|
|
108
|
+
freelog-cli status --cwd <工程> --resource id:<资源ID> --env dev
|
|
109
|
+
freelog-cli version show --cwd <工程> --resource name:<username/短标识> --env dev
|
|
110
|
+
freelog-cli update-version --cwd <工程> --resource artifact:video.mp4 --artifact video-v2.mp4 --bump patch --yes --env dev
|
|
93
111
|
```
|
|
94
112
|
|
|
95
|
-
需要机器可读错误时追加 `--json
|
|
113
|
+
需要机器可读错误时追加 `--json`。脚本优先用 `id:`、`name:` 或 `file:N.json`;不要用可能变化或重复的 `title:`,也不要依赖交互式选择。
|
package/dist/docs/README.md
CHANGED
|
@@ -65,7 +65,7 @@ freelog-cli --help
|
|
|
65
65
|
|---|---|
|
|
66
66
|
| `--env dev|test` | 选择联调环境。推荐每次显式传入。 |
|
|
67
67
|
| `--cwd <dir>` | 工程目录;决定 `.freelog/` 与工作区账号选择器的位置。 |
|
|
68
|
-
| `--resource <selector>` | 为常规单资源命令选择某一份本地身份:`
|
|
68
|
+
| `--resource <selector>` | 为常规单资源命令选择某一份本地身份:`id:<资源ID>`、`name:<短标识或username/name>`、`title:<标题>`、`artifact:<相对文件或构建目录>` 或 `file:N.json`。单份可省略;多份交互选择,非交互必须明确指定。`create` / `bind` 的新增或接续规则见下文。 |
|
|
69
69
|
| `--artifact <path>` | 当前选中资源的产物路径:`create` / `bind` 可记录默认路径;发版时表示本次上传路径;`version set` 只更新默认路径,绝不选择身份。 |
|
|
70
70
|
| `--yes` | 跳过交互确认;不会放宽校验。仅当命令明确支持时(如覆盖工作稿)才允许覆盖相应状态,绝不覆盖工程目录。 |
|
|
71
71
|
| `--json` | 将 CLI 错误输出为 `{ "code", "message" }`。 |
|
|
@@ -77,7 +77,7 @@ freelog-cli --help
|
|
|
77
77
|
1. `init` 只创建本地身份,`create` 只创建线上资源壳,`bind` 只接入已有线上资源;三者都不会上传或发布版本。
|
|
78
78
|
2. 无线上版本时只能用 `create-version` 发布固定的 `1.0.0`;已有线上版本时只能用 `update-version --version ...` 或 `--bump ...`。
|
|
79
79
|
3. 每次真实发版都会从当前文件或构建目录重新上传、分析;工作稿里的旧 SHA1 不能替代已丢失的产物。
|
|
80
|
-
4.
|
|
80
|
+
4. 主题/插件传构建目录时,CLI 临时压缩目录内容;传单个文件(包括 zip)时直接上传。普通资源传单个文件;只有普通资源不能传目录。
|
|
81
81
|
|
|
82
82
|
## 多资源工程:先选身份,再给产物
|
|
83
83
|
|
|
@@ -88,6 +88,6 @@ freelog-cli --help
|
|
|
88
88
|
| 0 | 停止并提示先 `init`、`create` 或 `bind`。 |
|
|
89
89
|
| 1 | 自动选择,无需传 `--resource`。 |
|
|
90
90
|
| 多份,交互终端 | 显示文件名、标题、短标识、资源 ID、类型、产物路径和工作稿状态,选择后继续。 |
|
|
91
|
-
| 多份,脚本/`--yes` |
|
|
91
|
+
| 多份,脚本/`--yes` | 停止并逐份列出可复制的 `id:`、`name:`、唯一 `title:`、`artifact:` 和 `file:N.json`;传 `--resource` 后重试。 |
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
人工操作优先使用 `id:<资源ID>`、`name:<短标识或 username/name>`,或在同一素材目录中直接使用 `artifact:video.mp4`;`title:<标题>` 只能在标题唯一时使用,因为标题可改也可重复。`file:N.json` 是本地状态文件的精确选择器,保留给 AI、脚本和故障恢复,不要求人工记住编号。`resource sync` 是唯一不传选择器就批量同步当前环境所有本地标题的资源命令。
|