@gbits-jszx/dg-cli 0.3.6 → 0.4.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/bin/dg-cli.js +36 -0
- package/package.json +6 -6
- package/README.md +0 -61
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.0",
|
|
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.0",
|
|
17
|
+
"@gbits-jszx/dg-cli-linux-arm64": "0.4.0",
|
|
18
|
+
"@gbits-jszx/dg-cli-darwin-x64": "0.4.0",
|
|
19
|
+
"@gbits-jszx/dg-cli-darwin-arm64": "0.4.0",
|
|
20
|
+
"@gbits-jszx/dg-cli-win32-x64": "0.4.0"
|
|
21
21
|
},
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"repository": {
|
package/README.md
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# @gbits-jszx/dg-cli
|
|
2
|
-
|
|
3
|
-
DataGateway CLI — 部署 / 运维 / 配置一站式工具,Go 二进制经由 npx 分发。
|
|
4
|
-
|
|
5
|
-
## 安装与使用
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# 一次性运行(推荐)
|
|
9
|
-
npx -y @gbits-jszx/dg-cli@latest doctor
|
|
10
|
-
|
|
11
|
-
# 全局安装
|
|
12
|
-
npm i -g @gbits-jszx/dg-cli
|
|
13
|
-
dg-cli doctor
|
|
14
|
-
|
|
15
|
-
# 项目本地依赖
|
|
16
|
-
npm i -D @gbits-jszx/dg-cli
|
|
17
|
-
npx dg-cli doctor
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## 平台支持
|
|
21
|
-
|
|
22
|
-
| OS | Arch |
|
|
23
|
-
|---|---|
|
|
24
|
-
| Linux | x64 / arm64 |
|
|
25
|
-
| macOS | Intel / Apple Silicon |
|
|
26
|
-
| Windows | x64 |
|
|
27
|
-
|
|
28
|
-
> npm 装包时根据 `process.platform/arch` 自动只下载当前平台的二进制(约 8MB),其它子包跳过。
|
|
29
|
-
|
|
30
|
-
## 主要命令
|
|
31
|
-
|
|
32
|
-
- `dg-cli doctor`:环境自检
|
|
33
|
-
- `dg-cli config init|validate|path`:配置文件管理(schema 驱动)
|
|
34
|
-
- `dg-cli deploy install|upgrade|rollback`:VM 部署
|
|
35
|
-
- `dg-cli image build|push`:镜像构建发布
|
|
36
|
-
- `dg-cli system rotate-secret`:业务系统密钥轮换
|
|
37
|
-
|
|
38
|
-
完整文档:[DataGateway 项目仓库](https://m68gitlab.g-bits.com/jszx-infra/datagateway)。
|
|
39
|
-
|
|
40
|
-
## 常见问题
|
|
41
|
-
|
|
42
|
-
**Q1:装完执行报「不支持的平台」**
|
|
43
|
-
当前平台未被收录(仅支持 linux x64/arm64、macOS Intel/Apple Silicon、Windows x64)。请联系维护者补齐 `@gbits-jszx/dg-cli-<platform>-<arch>` 子包,或通过仓库内 GitLab 渠道安装本地构建版本。
|
|
44
|
-
|
|
45
|
-
**Q2:`npx` 报错「需要登录 https://registry.npmjs.org」**
|
|
46
|
-
本机 `~/.npmrc` 把 registry 切到了私有镜像(如 npmmirror)。临时切回:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm config set registry https://registry.npmjs.org/
|
|
50
|
-
npx -y @gbits-jszx/dg-cli@latest doctor
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**Q3:与 `configs/config.yaml`、`.env` 文件的优先级**
|
|
54
|
-
bootstrap 把所有环境变量与当前工作目录原样透传给 Go 二进制,配置加载链与直接跑 `dg-cli` 完全一致:CLI flag > env (`DG_*`) > `configs/config.yaml` > 默认值。
|
|
55
|
-
|
|
56
|
-
**Q4:内网 / 无公网出口怎么办**
|
|
57
|
-
走 GitLab Generic Package 渠道(详见 `docs/dev-guide/OPS-部署指南.md` 第 4 步「离线兜底」)。
|
|
58
|
-
|
|
59
|
-
## License
|
|
60
|
-
|
|
61
|
-
MIT
|