@gbits-jszx/gw-cli 2026.9.14-2 → 2026.9.14-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/README.md
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
# @gbits-jszx/gw-cli
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
面向多个网关项目的跨平台构建、运行和交付工具。项目级命令的身份唯一来自显式 `--project-id <代号>`(或 `--project-id=<代号>`);不需要 `gw.project.yaml`,不接受旧 `--project` 路径,也不从 `GW_PROJECT_FILE` 或用户凭据中的旧 ID 兜底。`npm build/package/publish` 专用于维护 CLI 本身,不要求项目代号,包名固定为 `@gbits-jszx/gw-cli`。
|
|
4
4
|
|
|
5
|
-
> 当前公开版本为 `@gbits-jszx/gw-cli@2026.9.
|
|
5
|
+
> 当前公开版本为 `@gbits-jszx/gw-cli@2026.9.14-2`。公网使用 `npx -y --prefer-online @gbits-jszx/gw-cli@latest`;没有 Node/npm 的 Linux/WSL 可直接运行包内 `bin/native/gw-cli-linux-amd64`。源码开发继续使用 `go run ./tools/cli`。
|
|
6
6
|
>
|
|
7
7
|
> 默认 `all`、部署版本自动选择和 CLI 产品中立改造已进入源码,尚未发布到 npm;发布前使用源码验证。
|
|
8
8
|
|
|
9
9
|
[PC 开发构建发布、WSL/云 VM 初始化部署更新](../../../docs/user-docs/CLI-MULTI-PROJECT.md)。公网 registry 为 `https://registry.npmjs.org/`,包内包含 Windows amd64 和 Linux amd64(含 WSL)二进制。
|
|
10
10
|
|
|
11
|
+
WSL 必须使用安装在 WSL 内的 Linux Node/npm。若 `type -a node npm npx` 指向 `/mnt/c/...`,或 `node -p "process.platform"` 输出 `win32`,应先切换到 WSL 原生 Node。即使 Node 正确,也不要在包含 Windows 侧 `node_modules` 的 `/mnt/c/Users/<用户>` 下运行;npm 会把它识别为本地项目并污染 WSL 的 bin 查找,表现为 `Path contains delimiter (":")` / `gw-cli: not found`。切到 WSL home 或实际仓库后再执行:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cd /mnt/g/Git/Wurq/Projects/GW-Framework
|
|
15
|
+
npx -y --prefer-online @gbits-jszx/gw-cli@2026.9.14-2 --version
|
|
16
|
+
```
|
|
17
|
+
|
|
11
18
|
打包过程和最终 `.tgz` 全部位于仓库根目录 `.gw-build/npm/`;源码目录不会生成 `bin/native` 或被 `npm version` 改写。
|
|
12
19
|
|
|
13
20
|
## 端口调试与新项目
|
|
@@ -29,7 +36,7 @@ CLI 当前不提供新项目源码脚手架;先准备框架源码布局,再
|
|
|
29
36
|
|
|
30
37
|
## 日期版本号
|
|
31
38
|
|
|
32
|
-
npm、Image、Chart 使用相同的 `yyyy.M.d-id`
|
|
39
|
+
npm、Image、Chart 使用相同的 `yyyy.M.d-id` 格式,不要求三者同号。npm 在 CLI 全局范围独立编号;Image/Chart 按项目和制品类型编号。`npm build`、`npm package`、`npm publish` 和 `publish npm` 默认 `--version auto`,按执行机器的本地日期生成,序号从 1 开始、同日递增、跨日重置。也可用 `--version 2026.9.11-2` 显式重建未发布版本,日期须有效,月、日和序号均不得带前导零。
|
|
33
40
|
|
|
34
41
|
该格式可直接被 npm 解析为 SemVer:`yyyy.M.d` 是 major/minor/patch,`id` 是数字型 prerelease 标识。CLI 在打包副本中自动同步 `package.json` 的 `version`、`gwVersion` 和 Windows/Linux 二进制编译版本,无需手工修改源码中的 `gwVersion`。日常安装继续使用 `@latest`;精确复现使用完整版本号。由于它在 SemVer 中属于 prerelease,普通版本范围默认不会匹配,依赖方不要使用 `^2026.9.11`,应使用 `@latest` 或精确版本。
|
|
35
42
|
|
|
@@ -37,13 +44,13 @@ npm、Image、Chart 使用相同的 `yyyy.M.d-id` 格式,但按项目和制品
|
|
|
37
44
|
|
|
38
45
|
旧的 `yyyy.MM.dd.id` 仅保留为显式输入兼容,用于重建已经发布的旧包;新自动版本不会再生成旧格式。
|
|
39
46
|
|
|
40
|
-
序号记录位于统一配置 `~/jszx-infra/.gw-cli/config.yaml` 的 `
|
|
47
|
+
npm 序号记录位于统一配置 `~/jszx-infra/.gw-cli/config.yaml` 的 `shared.artifacts.npm`;打包开始即占用,失败和 dry-run 也占用一次,避免自动重用版本。同一用户配置下的并发自动打包不会重复分配,清理 `.gw-build` 或切换仓库副本不会重置编号。首次写入时,旧 `projects.*.artifacts.npm` 会合并到 shared:每日序号取最大值,最近构建/发布取较新记录,并删除项目内 npm 节点。手动指定版本可用于重打包或在本地验证后发布;换机器或 CI 多节点并行时仍需统一分配并显式传入未发布版本。`GW_CLI_PROJECTS` 仅覆盖旧账本作为升级兼容路径。
|
|
41
48
|
|
|
42
49
|
## 镜像 tag
|
|
43
50
|
|
|
44
51
|
`image build` 默认 `--tag auto`,生成 `yyyy.M.d-id`,例如 `2026.9.10-1`。该格式同时满足 Docker tag 与 Helm SemVer,Image 与 Chart 各自编号。`deploy helm install` 省略版本参数时,会按 `--project-id` 从发布账本自动选择最近成功发布的 Chart 版本和目标镜像仓库最近成功发布的 Image tag;换机器或账本缺失时再显式传入。日期按执行 CLI 的机器本地时间计算,序号从 1 起,同日递增、跨日重置。参数优先级为 `--tag` > `GW_IMAGE_TAG` > `auto`;自动和新显式版本使用新格式,已存在的 `yyyy.MM.dd.id` 仍可显式重建或推送。
|
|
45
52
|
|
|
46
|
-
镜像与 npm
|
|
53
|
+
镜像与 npm 独立计数;镜像编号写入统一配置的 `projects.<project-id>.artifacts.image`。开始构建时即占号,失败也保留,但只有成功构建才更新该 repository 的最近可推送 tag。同一 `project-id` 的不同镜像 repository 共用镜像每日序号,各自保存最近成功构建。显式 tag 可用于本地重建;不查询 Harbor。换机器或 CI 多节点构建时,应统一分配并显式传入未发布 tag,不能覆盖已发布镜像。
|
|
47
54
|
|
|
48
55
|
```powershell
|
|
49
56
|
# 自动编号,输出 Docker 构建日志及最终完整镜像名
|
|
@@ -113,7 +120,7 @@ Go 项目的 `build`、`run`、`test` 需要源码和 Go。本仓库默认 `run`
|
|
|
113
120
|
go run ./tools/cli --project-id gw-demo deploy k3s init --dry-run
|
|
114
121
|
```
|
|
115
122
|
|
|
116
|
-
目标机器需预先安装并运行 k3s、安装 Helm,并允许当前用户访问 kubeconfig;不自动安装 k3s 或 Helm。部署前可运行 `doctor --scope deploy`,该 scope 只检查 Helm/k3s/kubeconfig,不要求 Go、Node.js 或 npm。PostgreSQL 参数使用 `--pgsql-*`,数据库名为 `--pgsql-dbname`。已有密码分别复用,首次业务及管理员密码人工输入,危险修改需二次确认。imagePullSecret 来自执行机器的 Docker `auths`,缺少有效凭据时跳过,不能由 Chart 的 Helm 登录替代。完整说明见 [k3s 初始化](../../../docs/user-docs/K3S-INIT.md)。源码改动需要重新发布才会进入 npm `@latest`,当前 `@latest`
|
|
123
|
+
目标机器需预先安装并运行 k3s、安装 Helm,并允许当前用户访问 kubeconfig;不自动安装 k3s 或 Helm。部署前可运行 `doctor --scope deploy`,该 scope 只检查 Helm/k3s/kubeconfig,不要求 Go、Node.js 或 npm。PostgreSQL 参数使用 `--pgsql-*`,数据库名为 `--pgsql-dbname`。已有密码分别复用,首次业务及管理员密码人工输入,危险修改需二次确认。imagePullSecret 来自执行机器的 Docker `auths`,缺少有效凭据时跳过,不能由 Chart 的 Helm 登录替代。完整说明见 [k3s 初始化](../../../docs/user-docs/K3S-INIT.md)。源码改动需要重新发布才会进入 npm `@latest`,当前 `@latest` 是 `2026.9.14-2`。
|
|
117
124
|
|
|
118
125
|
## 发布凭据
|
|
119
126
|
|
|
@@ -122,7 +129,7 @@ go run ./tools/cli --project-id gw-demo deploy k3s init --dry-run
|
|
|
122
129
|
Namespace/应用 Release 默认代号,PG Release 默认 `<代号>-pg`,数据库名/用户名将 `-` 转为 `_`,数据库连接 Secret 默认 `<代号>-database`。超长 Release/资源名自动缩短并保留确定性哈希;Namespace 和制品地址保留完整代号。kubeconfig/context 默认 `/etc/rancher/k3s/k3s.yaml` / `default`,可通过现有参数及环境变量覆盖。详细规则见[多项目 CLI 指南](../../../docs/user-docs/CLI-MULTI-PROJECT.md)。
|
|
123
130
|
|
|
124
131
|
```powershell
|
|
125
|
-
go run ./tools/cli
|
|
132
|
+
go run ./tools/cli npm publish
|
|
126
133
|
go run ./tools/cli --project-id gw-demo image push
|
|
127
134
|
go run ./tools/cli --project-id gw-demo chart push
|
|
128
135
|
```
|
|
@@ -135,19 +142,19 @@ Token 和密码在终端中不回显。配置文件保存明文凭据,Unix 下
|
|
|
135
142
|
|
|
136
143
|
## 源码打包与本地验证
|
|
137
144
|
|
|
138
|
-
已有公开 npm
|
|
145
|
+
已有公开 npm 包;npm 构建/发布在当前源码中不再使用项目代号,版本统一记录到 `shared.artifacts.npm`:
|
|
139
146
|
|
|
140
147
|
```powershell
|
|
141
148
|
# 自动使用当天序号,终端会打印版本和文件名
|
|
142
|
-
go run ./tools/cli
|
|
149
|
+
go run ./tools/cli npm build
|
|
143
150
|
# 把占位文件名替换为本次 build 实际输出的文件名;这里使用本地新包
|
|
144
151
|
$gwNpmArchive = './.gw-build/npm/<本次输出的文件名>.tgz'
|
|
145
152
|
npx -y --package $gwNpmArchive gw-cli --version
|
|
146
153
|
npx -y --package $gwNpmArchive gw-cli --project-id gw-demo config show
|
|
147
154
|
# 只检查发布包,不上传、不询问 Token
|
|
148
|
-
go run ./tools/cli
|
|
155
|
+
go run ./tools/cli npm publish --dry-run
|
|
149
156
|
# 获得发布授权后执行:重新构建并自动编号,输入具备发布权限的 npm Token
|
|
150
|
-
go run ./tools/cli
|
|
157
|
+
go run ./tools/cli npm publish
|
|
151
158
|
```
|
|
152
159
|
|
|
153
160
|
发布后的版本号不可复用。这里的 `gw-cli` 是包内命令名,公网下载始终使用 scoped 包 `@gbits-jszx/gw-cli`。
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"bin"
|
|
11
11
|
],
|
|
12
|
-
"gwVersion": "2026.9.14-
|
|
12
|
+
"gwVersion": "2026.9.14-3",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"name": "@gbits-jszx/gw-cli",
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public",
|
|
17
17
|
"registry": "https://registry.npmjs.org/"
|
|
18
18
|
},
|
|
19
|
-
"version": "2026.9.14-
|
|
19
|
+
"version": "2026.9.14-3"
|
|
20
20
|
}
|