From 06298f9e15252cdcd5097aba17bf1861c4fb85fc Mon Sep 17 00:00:00 2001 From: Lyda <1829913225@qq.com> Date: Thu, 18 Sep 2025 18:33:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=BC=BA=20pnpm=20store=20?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E9=85=8D=E7=BD=AE=E4=BB=A5=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E7=9B=B8=E5=AF=B9=E8=B7=AF=E5=BE=84=E8=A7=A3=E6=9E=90=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- npm-install/action.yml | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/npm-install/action.yml b/npm-install/action.yml index 2940722..4947fe7 100644 --- a/npm-install/action.yml +++ b/npm-install/action.yml @@ -217,16 +217,13 @@ runs: # node_modules 模式:不要回退到 cache-path(那是 node_modules 目录),而是使用 RUNNER_TEMP/HOME export PNPM_STORE_DIR="${PNPM_STORE_DIR:-${RUNNER_TEMP:-$HOME}/.pnpm-store}" fi + # 通过多通道环境变量覆盖(兼容不同版本/解析顺序) + export npm_config_store_dir="${PNPM_STORE_DIR}" + export PNPM_CONFIG_STORE_DIR="${PNPM_STORE_DIR}" echo "🧩 已设置 PNPM_STORE_DIR=${PNPM_STORE_DIR}" + echo "🔎 pnpm 配置: store-dir=$(pnpm config get store-dir || echo '')" fi - # 可选清理:如启用并发现项目根存在残留的 .pnpm-store,且与目标目录不同,则清理 - if [[ "${{ inputs.package-manager }}" == "pnpm" && "${{ inputs.clean-project-store }}" == "true" ]]; then - if [[ -d ".pnpm-store" && "${PNPM_STORE_DIR}" != "$PWD/.pnpm-store" ]]; then - echo "🧹 清理项目根的残留 .pnpm-store(目标store为 ${PNPM_STORE_DIR})" - rm -rf .pnpm-store || true - fi - fi # 如果提供了自定义安装命令,使用自定义命令 if [[ -n "${{ inputs.install-command }}" ]]; then echo "🔧 使用自定义安装命令: ${{ inputs.install-command }}" @@ -283,6 +280,16 @@ runs: ;; esac fi + + # 可选清理:如启用并发现项目根存在残留的 .pnpm-store,且与目标目录不同,则清理 + if [[ "${{ inputs.package-manager }}" == "pnpm" && "${{ inputs.clean-project-store }}" == "true" ]]; then + # 进一步在项目级设置覆盖一次,杜绝 .npmrc 相对路径带来的影响(仅对本 CI 工作目录生效) + pnpm config set store-dir "${PNPM_STORE_DIR}" --location=project || true + if [[ -d ".pnpm-store" && "${PNPM_STORE_DIR}" != "$PWD/.pnpm-store" ]]; then + echo "🧹 清理项目根的残留 .pnpm-store(目标store为 ${PNPM_STORE_DIR})" + rm -rf .pnpm-store || true + fi + fi echo "✅ 依赖安装完成"