From 2069d7e1e90d8ba467eaa24f8b09af4672250ab2 Mon Sep 17 00:00:00 2001 From: Lyda <1829913225@qq.com> Date: Tue, 17 Mar 2026 17:32:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=20setup-opencode=20ac?= =?UTF-8?q?tion=20=E7=9A=84=E7=89=88=E6=9C=AC=E6=A3=80=E6=B5=8B=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E6=94=B9=E7=94=A8=E5=8C=85=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=9B=BF=E4=BB=A3=E5=91=BD=E4=BB=A4=E6=A3=80?= =?UTF-8?q?=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 版本检测改为检查全局包目录是否存在,避免包名与命令名不一致导致的误判 - 直接从包目录的 package.json 读取版本号,不再依赖 npm list 命令 - 使用 grep 正则匹配提取版本字段,支持不同格式的 JSON 空格 - 优化错误处理:package.json 不存在时版本标记为 unknown --- setup-opencode/action.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/setup-opencode/action.yml b/setup-opencode/action.yml index c4b8da1..49813b7 100644 --- a/setup-opencode/action.yml +++ b/setup-opencode/action.yml @@ -160,12 +160,20 @@ runs: run: | PACKAGE="${{ inputs.package-name }}" TARGET_VERSION="${{ steps.resolve-version.outputs.version }}" + GLOBAL_ROOT="${{ steps.npm-paths.outputs.global-root }}" NEED_INSTALL="true" - if command -v $PACKAGE &> /dev/null; then - # 使用 JSON 格式获取版本信息,更可靠 - INSTALLED_INFO=$(npm list -g $PACKAGE --json --depth=0 2>/dev/null || echo '{}') - INSTALLED_VERSION=$(echo "${INSTALLED_INFO}" | grep -o '"version":"[^"]*"' | head -1 | cut -d'"' -f4 || echo "unknown") + # 检查包目录是否存在(更可靠,不依赖命令名) + PACKAGE_DIR="${GLOBAL_ROOT}/${PACKAGE}" + + if [[ -d "${PACKAGE_DIR}" ]]; then + # 从 package.json 获取版本 + PACKAGE_JSON="${PACKAGE_DIR}/package.json" + if [[ -f "${PACKAGE_JSON}" ]]; then + INSTALLED_VERSION=$(grep -o '"version"[[:space:]]*:[[:space:]]*"[^"]*"' "${PACKAGE_JSON}" | head -1 | cut -d'"' -f4 || echo "unknown") + else + INSTALLED_VERSION="unknown" + fi echo "📦 已安装版本: ${INSTALLED_VERSION}" echo "🎯 目标版本: ${TARGET_VERSION}"