mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-13 09:50:42 +00:00
fix(update): retry npm updates without optional deps
This commit is contained in:
@@ -37,6 +37,7 @@ import {
|
||||
canResolveRegistryVersionForPackageTarget,
|
||||
createGlobalInstallEnv,
|
||||
cleanupGlobalRenameDirs,
|
||||
globalInstallFallbackArgs,
|
||||
globalInstallArgs,
|
||||
resolveExpectedInstalledVersionFromSpec,
|
||||
resolveGlobalInstallTarget,
|
||||
@@ -407,6 +408,21 @@ async function runPackageInstallUpdate(params: {
|
||||
});
|
||||
|
||||
const steps = [updateStep];
|
||||
let finalInstallStep = updateStep;
|
||||
if (updateStep.exitCode !== 0) {
|
||||
const fallbackArgv = globalInstallFallbackArgs(installTarget, installSpec);
|
||||
if (fallbackArgv) {
|
||||
const fallbackStep = await runUpdateStep({
|
||||
name: "global update (omit optional)",
|
||||
argv: fallbackArgv,
|
||||
env: installEnv,
|
||||
timeoutMs: params.timeoutMs,
|
||||
progress: params.progress,
|
||||
});
|
||||
steps.push(fallbackStep);
|
||||
finalInstallStep = fallbackStep;
|
||||
}
|
||||
}
|
||||
let afterVersion = beforeVersion;
|
||||
|
||||
const verifiedPackageRoot =
|
||||
@@ -451,7 +467,10 @@ async function runPackageInstallUpdate(params: {
|
||||
}
|
||||
}
|
||||
|
||||
const failedStep = steps.find((step) => step.exitCode !== 0);
|
||||
const failedStep =
|
||||
finalInstallStep.exitCode !== 0
|
||||
? finalInstallStep
|
||||
: (steps.find((step) => step !== updateStep && step.exitCode !== 0) ?? null);
|
||||
return {
|
||||
status: failedStep ? "error" : "ok",
|
||||
mode: manager,
|
||||
|
||||
Reference in New Issue
Block a user