From af648e65f2917d9f00aace57901c49d389784ffa Mon Sep 17 00:00:00 2001 From: Lyda <1829913225@qq.com> Date: Thu, 18 Sep 2025 18:06:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=86=20pnpm=20store=20=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E5=9B=BA=E5=AE=9A=E5=88=B0=E4=B8=B4=E6=97=B6=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E4=BB=A5=E9=81=BF=E5=85=8D=E5=9C=A8=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=A0=B9=E5=88=9B=E5=BB=BA=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- npm-install/action.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/npm-install/action.yml b/npm-install/action.yml index a28ddbc..ce01ea9 100644 --- a/npm-install/action.yml +++ b/npm-install/action.yml @@ -147,13 +147,13 @@ runs: CACHE_PATH="$HOME/.npm" ;; "pnpm") - # pnpm store 路径(通过命令获取,以兼容自定义配置) - if command -v pnpm >/dev/null 2>&1; then - CACHE_PATH="$(pnpm store path)" - else - # 回退:若未能获取,则使用常见默认路径 - CACHE_PATH="$HOME/.pnpm-store" - fi + # 固定 pnpm store 路径到 runner 的临时目录或 HOME,避免在项目根生成 .pnpm-store + # 说明:一些仓库的 .npmrc 可能配置了 store-dir=.pnpm-store,会导致在工作目录创建 .pnpm-store + # 这里通过设置 PNPM_STORE_DIR 环境变量进行覆盖,确保缓存路径稳定可控 + DEFAULT_PNPM_STORE="${RUNNER_TEMP:-$HOME}/.pnpm-store" + # 将目录导出到环境,供后续安装步骤使用 + echo "PNPM_STORE_DIR=${DEFAULT_PNPM_STORE}" >> "$GITHUB_ENV" + CACHE_PATH="${DEFAULT_PNPM_STORE}" ;; "yarn") # yarn v1 默认缓存目录(yarn berry 采用不同机制,这里聚焦 v1 常见场景) @@ -165,6 +165,11 @@ runs: ;; esac fi + # 打印最终缓存目录,便于调试与确认 + echo "📁 最终缓存目录: ${CACHE_PATH}" + if [[ "$MANAGER" == "pnpm" ]]; then + echo "📦 PNPM_STORE_DIR=${PNPM_STORE_DIR:-$DEFAULT_PNPM_STORE}" + fi echo "path=${CACHE_PATH}" >> $GITHUB_OUTPUT - name: 拉取缓存依赖