ci: npm 装 pnpm 前先清掉残留影子文件(EEXIST),并去掉 npm 不认的 store-dir
构建客户端 / 检查(类型 + 单元测试) (push) Successful in 1m10s
构建客户端 / macOS 通用(.app + .dmg) (push) Skipped
构建客户端 / Windows x64(NSIS 安装包) (push) Failing after 32s
构建客户端 / Linux x64(deb + AppImage) (push) Successful in 6m20s

This commit is contained in:
2026-10-15 23:29:39 +08:00
parent e6070f91ee
commit 4794bed2cf
+6 -1
View File
@@ -369,7 +369,6 @@ jobs:
LOCALAPPDATA: C:\Users\admin\runner\windows\cache\ci-localappdata LOCALAPPDATA: C:\Users\admin\runner\windows\cache\ci-localappdata
APPDATA: C:\Users\admin\runner\windows\cache\ci-appdata APPDATA: C:\Users\admin\runner\windows\cache\ci-appdata
npm_config_cache: C:\Users\admin\runner\windows\cache\ci-npm npm_config_cache: C:\Users\admin\runner\windows\cache\ci-npm
npm_config_store_dir: C:\Users\admin\runner\windows\cache\ci-pnpm-store
RUNNER_TOOL_CACHE: C:\Users\admin\runner\windows\cache\ci-toolcache RUNNER_TOOL_CACHE: C:\Users\admin\runner\windows\cache\ci-toolcache
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -441,6 +440,12 @@ jobs:
- name: 装 pnpm(npm 装 JS 版,绕开 standalone 二进制) - name: 装 pnpm(npm 装 JS 版,绕开 standalone 二进制)
shell: pwsh shell: pwsh
run: | run: |
# 前面几次尝试在 node 目录里留下过 pnpm/pnpx 的影子文件,npm 会以
# EEXIST 拒绝覆盖,先清掉(node 目录在 RUNNER_TOOL_CACHE 下,可写)。
$nodeDir = Split-Path (Get-Command node).Source
foreach ($n in 'pnpm', 'pnpx', 'pnpm.cmd', 'pnpx.cmd', 'pnpm.ps1', 'pnpx.ps1') {
Remove-Item (Join-Path $nodeDir $n) -Force -ErrorAction SilentlyContinue
}
npm install -g pnpm@12.8.1 npm install -g pnpm@12.8.1
if ($LASTEXITCODE -ne 0) { throw "npm 装 pnpm 失败(exit $LASTEXITCODE)" } if ($LASTEXITCODE -ne 0) { throw "npm 装 pnpm 失败(exit $LASTEXITCODE)" }
"pnpm = $((Get-Command pnpm).Source)" "pnpm = $((Get-Command pnpm).Source)"