fix: check npm exists before version check; reject unmatched platform assets in Match-GithubAsset

This commit is contained in:
i
2026-06-02 00:22:32 +08:00
parent 61d75a730c
commit be09e5b20c
+4 -1
View File
@@ -227,6 +227,7 @@ function Detect-Installed {
# 获取远程最新版本 # 获取远程最新版本
# ───────────────────────────────────────── # ─────────────────────────────────────────
function Get-RemoteNpmVersion { function Get-RemoteNpmVersion {
if (-not (Get-Command "npm" -ErrorAction SilentlyContinue)) { return $null }
try { try {
$ver = (& npm view $script:NPM_PACKAGE version 2>$null).Trim() $ver = (& npm view $script:NPM_PACKAGE version 2>$null).Trim()
if ($ver) { return $ver } if ($ver) { return $ver }
@@ -286,11 +287,13 @@ function Match-GithubAsset {
if ($isExcluded) { continue } if ($isExcluded) { continue }
$score = 0 $score = 0
foreach ($k in $platformKw) { if ($name -like "*$k*") { $score += 10; break } } $hasPlatform = $false
foreach ($k in $platformKw) { if ($name -like "*$k*") { $score += 10; $hasPlatform = $true; break } }
foreach ($k in $archKw) { if ($name -like "*$k*") { $score += 10; break } } foreach ($k in $archKw) { if ($name -like "*$k*") { $score += 10; break } }
if (-not ($name -match '\.(tar\.gz|tgz|zip|7z)$')) { $score += 5 } if (-not ($name -match '\.(tar\.gz|tgz|zip|7z)$')) { $score += 5 }
if ($name -like "*musl*") { $score -= 3 } if ($name -like "*musl*") { $score -= 3 }
if (-not $hasPlatform) { continue }
if ($score -gt $bestScore) { if ($score -gt $bestScore) {
$bestScore = $score $bestScore = $score
$bestAsset = $asset $bestAsset = $asset