@gbits-jszx/dg-cli 0.3.6 → 0.4.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 +26 -15
- package/bin/dg-cli.js +36 -0
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -5,8 +5,8 @@ DataGateway CLI — 部署 / 运维 / 配置一站式工具,Go 二进制经由
|
|
|
5
5
|
## 安装与使用
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
#
|
|
9
|
-
npx -y @gbits-jszx/dg-cli@latest doctor
|
|
8
|
+
# 一次性运行(推荐,--prefer-online 确保拉最新版)
|
|
9
|
+
npx -y --prefer-online @gbits-jszx/dg-cli@latest doctor
|
|
10
10
|
|
|
11
11
|
# 全局安装
|
|
12
12
|
npm i -g @gbits-jszx/dg-cli
|
|
@@ -25,36 +25,47 @@ npx dg-cli doctor
|
|
|
25
25
|
| macOS | Intel / Apple Silicon |
|
|
26
26
|
| Windows | x64 |
|
|
27
27
|
|
|
28
|
-
> npm 装包时根据 `process.platform/arch` 自动只下载当前平台的二进制(约
|
|
28
|
+
> npm 装包时根据 `process.platform/arch` 自动只下载当前平台的二进制(约 15MB),其它子包跳过。
|
|
29
29
|
|
|
30
30
|
## 主要命令
|
|
31
31
|
|
|
32
|
-
- `dg-cli doctor
|
|
33
|
-
- `dg-cli config init|validate|path
|
|
34
|
-
- `dg-cli
|
|
35
|
-
- `dg-cli image build|push
|
|
36
|
-
- `dg-cli system rotate-secret
|
|
32
|
+
- `dg-cli doctor` — 环境自检
|
|
33
|
+
- `dg-cli config init|validate|path` — 配置文件管理(schema 驱动)
|
|
34
|
+
- `dg-cli helm install|uninstall` — Helm Chart 部署(K8s/K3s)
|
|
35
|
+
- `dg-cli image build|push` — 镜像构建发布
|
|
36
|
+
- `dg-cli system rotate-secret` — 业务系统密钥轮换
|
|
37
|
+
- `dg-cli release npm build|publish` — npm 包构建与发布
|
|
37
38
|
|
|
38
39
|
完整文档:[DataGateway 项目仓库](https://m68gitlab.g-bits.com/jszx-infra/datagateway)。
|
|
39
40
|
|
|
41
|
+
## 0.4.0 Breaking Changes
|
|
42
|
+
|
|
43
|
+
- `helm install --scope all/app` 不再接受空 tag 或可变别名(latest/main/master/stable/current),必须传入确定性 tag(如 git SHA)。违反时 Exit 3。
|
|
44
|
+
- npx 入口启动时异步检测 dist-tags,旧版本会打印升级提示(可设 `DG_NPX_NO_VERSION_CHECK=1` 禁用)。
|
|
45
|
+
|
|
40
46
|
## 常见问题
|
|
41
47
|
|
|
42
48
|
**Q1:装完执行报「不支持的平台」**
|
|
43
|
-
|
|
49
|
+
当前平台未被收录。请联系维护者补齐子包,或通过仓库内 GitLab 渠道安装本地构建版本。
|
|
44
50
|
|
|
45
51
|
**Q2:`npx` 报错「需要登录 https://registry.npmjs.org」**
|
|
46
|
-
本机 `~/.npmrc` 把 registry
|
|
52
|
+
本机 `~/.npmrc` 把 registry 切到了私有镜像。临时切回:
|
|
47
53
|
|
|
48
54
|
```bash
|
|
49
55
|
npm config set registry https://registry.npmjs.org/
|
|
50
|
-
npx -y @gbits-jszx/dg-cli@latest doctor
|
|
56
|
+
npx -y --prefer-online @gbits-jszx/dg-cli@latest doctor
|
|
51
57
|
```
|
|
52
58
|
|
|
53
|
-
**Q3
|
|
54
|
-
|
|
59
|
+
**Q3:helm install 报 Exit 3**
|
|
60
|
+
说明 `--tag` 为空或传入了可变别名。正确做法:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
IMG_TAG=$(git rev-parse --short HEAD)
|
|
64
|
+
npx -y --prefer-online @gbits-jszx/dg-cli@latest helm install --scope app --tag $IMG_TAG
|
|
65
|
+
```
|
|
55
66
|
|
|
56
|
-
**Q4
|
|
57
|
-
|
|
67
|
+
**Q4:与 `configs/config.yaml`、`.env` 文件的优先级**
|
|
68
|
+
CLI flag > env (`DG_*`) > `configs/config.yaml` > 默认值。
|
|
58
69
|
|
|
59
70
|
## License
|
|
60
71
|
|
package/bin/dg-cli.js
CHANGED
|
@@ -10,6 +10,42 @@ const arch = process.arch; // 'x64' / 'arm64'
|
|
|
10
10
|
const pkg = `@gbits-jszx/dg-cli-${platform}-${arch}`;
|
|
11
11
|
const exe = platform === "win32" ? "dg-cli.exe" : "dg-cli";
|
|
12
12
|
|
|
13
|
+
// 后台异步比对本地版本与 npm registry latest(D5:零依赖、零阻塞、出错全静默)。
|
|
14
|
+
// 不阻塞主进程:req.unref() 让请求不延长 process 生命周期;任意错误吞掉。
|
|
15
|
+
// 实际能否打印 WARN 取决于 execFileSync 后 Node 是否还在 drain IO;
|
|
16
|
+
// 长命令(helm install)期间响应早已 buffered → 大概率能打印;
|
|
17
|
+
// 短命令(--version)可能来不及 → 静默丢弃,符合"不打扰用户"原则。
|
|
18
|
+
function checkLatestAsync() {
|
|
19
|
+
if (process.env.DG_NPX_NO_VERSION_CHECK) return; // 离线/CI 用环境变量短路
|
|
20
|
+
try {
|
|
21
|
+
const https = require("https");
|
|
22
|
+
const localVer = require("../package.json").version;
|
|
23
|
+
const url = "https://registry.npmjs.org/-/package/@gbits-jszx/dg-cli/dist-tags";
|
|
24
|
+
const req = https.get(url, { timeout: 1500 }, (res) => {
|
|
25
|
+
if (res.statusCode !== 200) { res.resume(); return; }
|
|
26
|
+
let data = "";
|
|
27
|
+
res.on("data", (chunk) => { data += chunk; });
|
|
28
|
+
res.on("end", () => {
|
|
29
|
+
try {
|
|
30
|
+
const tags = JSON.parse(data);
|
|
31
|
+
const remoteVer = tags && tags.latest;
|
|
32
|
+
if (remoteVer && remoteVer !== localVer) {
|
|
33
|
+
console.error(
|
|
34
|
+
`[dg-cli] 本地 ${localVer},registry latest=${remoteVer};` +
|
|
35
|
+
`若需刷新:rm -rf ~/.npm/_npx && npx -y --prefer-online @gbits-jszx/dg-cli@latest <cmd>`
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
} catch (_) { /* 静默 */ }
|
|
39
|
+
});
|
|
40
|
+
res.on("error", () => {});
|
|
41
|
+
});
|
|
42
|
+
req.on("error", () => {});
|
|
43
|
+
req.on("timeout", () => { req.destroy(); });
|
|
44
|
+
if (req.unref) req.unref();
|
|
45
|
+
} catch (_) { /* 静默 */ }
|
|
46
|
+
}
|
|
47
|
+
checkLatestAsync();
|
|
48
|
+
|
|
13
49
|
let binPath;
|
|
14
50
|
try {
|
|
15
51
|
binPath = require.resolve(`${pkg}/bin/${exe}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gbits-jszx/dg-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "DataGateway CLI — 部署/运维/配置一站式(Go binary,npx 分发)",
|
|
5
5
|
"bin": {
|
|
6
6
|
"dg-cli": "bin/dg-cli.js"
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"node": ">=14"
|
|
14
14
|
},
|
|
15
15
|
"optionalDependencies": {
|
|
16
|
-
"@gbits-jszx/dg-cli-linux-x64": "0.
|
|
17
|
-
"@gbits-jszx/dg-cli-linux-arm64": "0.
|
|
18
|
-
"@gbits-jszx/dg-cli-darwin-x64": "0.
|
|
19
|
-
"@gbits-jszx/dg-cli-darwin-arm64": "0.
|
|
20
|
-
"@gbits-jszx/dg-cli-win32-x64": "0.
|
|
16
|
+
"@gbits-jszx/dg-cli-linux-x64": "0.4.1",
|
|
17
|
+
"@gbits-jszx/dg-cli-linux-arm64": "0.4.1",
|
|
18
|
+
"@gbits-jszx/dg-cli-darwin-x64": "0.4.1",
|
|
19
|
+
"@gbits-jszx/dg-cli-darwin-arm64": "0.4.1",
|
|
20
|
+
"@gbits-jszx/dg-cli-win32-x64": "0.4.1"
|
|
21
21
|
},
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"repository": {
|