From e84719f76e8347dc21b91229ed5de46428b41fed Mon Sep 17 00:00:00 2001 From: wecom-project Date: Sun, 25 Oct 2026 16:01:03 +0800 Subject: [PATCH] =?UTF-8?q?fix(deploy):=20pnpm=20=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=96=AD=E8=A8=80=E4=B8=8D=E4=B8=80=E8=87=B4=E6=97=B6=E5=85=88?= =?UTF-8?q?=20corepack=20=E8=87=AA=E6=84=88=EF=BC=8C=E4=BB=8D=E4=B8=8D?= =?UTF-8?q?=E4=B8=80=E8=87=B4=E5=88=99=E4=BB=8D=20fail-closed=20exit=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/deploy.sh b/deploy.sh index 210f85f0..a488ce11 100755 --- a/deploy.sh +++ b/deploy.sh @@ -56,10 +56,16 @@ assert_pnpm_version() { fi actual="$(pnpm -v 2>/dev/null | tail -1 | tr -d '[:space:]' || true)" if [ "$actual" != "$expect" ]; then - echo "❌ pnpm 版本断言失败:package.json pin=$expect,实读 pnpm -v=${actual:-<空>}" - echo " 多为 corepack lastKnownGood 漂移(/root/.cache/node/corepack/lastKnownGood.json)" - echo " 修法:HOME=/root corepack prepare pnpm@$expect --activate | 中止(生产未被触碰)" - exit 1 + echo "⚠️ pnpm 版本断言不匹配:package.json pin=$expect,实读 pnpm -v=${actual:-<空>}" + echo " 尝试自愈:corepack prepare pnpm@$expect --activate(integrity 依 packageManager 的 sha512 校验)" + corepack prepare "pnpm@$expect" --activate >/dev/null 2>&1 || true + actual="$(pnpm -v 2>/dev/null | tail -1 | tr -d '[:space:]' || true)" + if [ "$actual" != "$expect" ]; then + echo "❌ pnpm 版本断言失败(自愈未成功):pin=$expect,实读=${actual:-<空>}" + echo " 多为 corepack lastKnownGood 漂移或离线/缓存缺失;中止(生产未被触碰)" + exit 1 + fi + echo " ✓ 自愈成功:pnpm $actual == package.json pin $expect" fi echo " ✓ pnpm 版本断言通过:pnpm $actual == package.json pin $expect" }