pansetup 1.0.1 → 1.0.2
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/cli.js +6 -3
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -45,9 +45,11 @@ const delay = (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
45
45
|
function installWithProgress(pkgName) {
|
|
46
46
|
return new Promise((resolve, reject) => {
|
|
47
47
|
const npmCmd = IS_WIN ? "npm.cmd" : "npm";
|
|
48
|
-
const child = spawn(npmCmd, ["install", "-g", pkgName, "--prefer-online"], { stdio: "ignore" });
|
|
48
|
+
const child = spawn(npmCmd, ["install", "-g", pkgName, "--prefer-online"], { stdio: ["ignore", "ignore", "pipe"] });
|
|
49
49
|
const frames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
50
50
|
let i = 0; const startTime = Date.now();
|
|
51
|
+
let errBuf = "";
|
|
52
|
+
child.stderr.on("data", (d) => { errBuf += d.toString(); });
|
|
51
53
|
const timer = setInterval(() => {
|
|
52
54
|
const elapsed = Math.round((Date.now() - startTime) / 1000);
|
|
53
55
|
process.stdout.write(`\r ${c.cyan}拼命下载 ${pkgName} 中 ${frames[i]} (耗时: ${elapsed}s)...${c.reset} `);
|
|
@@ -55,7 +57,8 @@ function installWithProgress(pkgName) {
|
|
|
55
57
|
}, 100);
|
|
56
58
|
child.on("close", (code) => {
|
|
57
59
|
clearInterval(timer); process.stdout.write("\r" + " ".repeat(60) + "\r");
|
|
58
|
-
if (code === 0) resolve();
|
|
60
|
+
if (code === 0) resolve();
|
|
61
|
+
else reject(new Error(errBuf.trim() || `Exit code ${code}`));
|
|
59
62
|
});
|
|
60
63
|
});
|
|
61
64
|
}
|
|
@@ -77,7 +80,7 @@ async function main() {
|
|
|
77
80
|
catch (e) {
|
|
78
81
|
log.warn(`未检测到 9router,正在自动安装全局包...`);
|
|
79
82
|
try { await installWithProgress("9router"); log.ok(`9router 安装成功!`); }
|
|
80
|
-
catch (err) { log.error(`9router
|
|
83
|
+
catch (err) { log.error(`9router 安装失败!\n ${c.gray}原因: ${err.message.replace(/\n/g, "\n ")}${c.reset}`); process.exit(1); }
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
try { execSync("claude --version", { stdio: "ignore" }); log.ok(`Claude Code 已就绪。`); }
|