@geoly-ai/skills-hub 0.3.3 → 0.3.5
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 +103 -27
- package/bin/skills-hub.mjs +34 -12
- package/package.json +1 -1
- package/src/cli.mjs +4 -0
- package/src/commands/install.mjs +1 -1
- package/src/commands/project-lockfile.mjs +116 -0
- package/src/commands/refgraph.mjs +290 -0
- package/src/commands/registry.mjs +12 -11
- package/src/commands/remove.mjs +378 -0
- package/src/commands/update.mjs +835 -0
- package/src/download.mjs +21 -3
package/src/download.mjs
CHANGED
|
@@ -182,8 +182,13 @@ export async function download(url, {
|
|
|
182
182
|
// 我第一版无论如何都说「需要 Node ≥ 24」,而在 Node 25 上读者会
|
|
183
183
|
// 合理地认为「我满足了,那问题在别处」—— 一句正确但不适用的话,
|
|
184
184
|
// 比不说更能把人带偏。
|
|
185
|
+
// 🔴 **不按错误码枚举**。2026-09-04 实测:真实现场返回的是 `UND_ERR_SOCKET`,
|
|
186
|
+
// 而我当时枚举的是 TIMEOUT/ECONNREFUSED/ENOTFOUND/EAI_AGAIN —— 提示一个字没打。
|
|
187
|
+
// undici 的错误码谱系又长又会变(UND_ERR_SOCKET / UND_ERR_CONNECT_TIMEOUT /
|
|
188
|
+
// ECONNRESET / EPIPE / 证书类…),**枚举注定漏**。
|
|
189
|
+
// 判据换成:**走到这里就是取不到字节**,那时告诉用户「怎么走网络」总是有用的。
|
|
185
190
|
let hint = '';
|
|
186
|
-
|
|
191
|
+
{
|
|
187
192
|
const major = Number(process.versions.node.split('.')[0]);
|
|
188
193
|
const hasProxyEnv = ['HTTPS_PROXY', 'https_proxy', 'HTTP_PROXY', 'http_proxy']
|
|
189
194
|
.some((k) => process.env[k]);
|
|
@@ -193,8 +198,21 @@ export async function download(url, {
|
|
|
193
198
|
} else if (hasProxyEnv && process.env.NODE_USE_ENV_PROXY === '0') {
|
|
194
199
|
hint = '\n 你配了代理,但显式设了 NODE_USE_ENV_PROXY=0 —— CLI 因此没走代理。';
|
|
195
200
|
} else if (!hasProxyEnv) {
|
|
196
|
-
|
|
197
|
-
|
|
201
|
+
// 🔴 **系统代理不等于环境变量。** Clash / Surge / 公司 VPN 客户端
|
|
202
|
+
// 通常只写 macOS 的系统代理设置,而 **Node 的内建 fetch 不读它**
|
|
203
|
+
// (curl 和浏览器读,所以「浏览器能开 github」不能证明 CLI 能)。
|
|
204
|
+
// 2026-09-04 用户就是这么撞上的:一句「设置 HTTPS_PROXY」
|
|
205
|
+
// 对一个「我明明挂着代理」的人来说,读起来像是答非所问。
|
|
206
|
+
hint = '\n 连不上 —— 无法访问 github.com。'
|
|
207
|
+
+ '\n ⚠️ 如果你在用 Clash / Surge / VPN 客户端:它们通常只设**系统代理**,'
|
|
208
|
+
+ '\n 而 Node 不读系统代理(curl 和浏览器读,所以浏览器能打开不算数)。'
|
|
209
|
+
+ '\n 要显式导出环境变量:'
|
|
210
|
+
+ (process.platform === 'darwin'
|
|
211
|
+
? '\n scutil --proxy | grep -iE "HTTPSProxy|HTTPSPort" # 看端口'
|
|
212
|
+
+ '\n export HTTPS_PROXY=http://127.0.0.1:<端口>'
|
|
213
|
+
: '\n export HTTPS_PROXY=http://<host>:<port>')
|
|
214
|
+
+ '\n (NO_PROXY 也会被尊重。代理支持需要 Node ≥ 24,当前 '
|
|
215
|
+
+ process.version + '。)';
|
|
198
216
|
} else {
|
|
199
217
|
hint = '\n 代理已配置且已启用,但仍然连不上 —— 请检查代理本身是否可达。';
|
|
200
218
|
}
|