Parcourir la source

fix: pnpm 安装增加 corepack 失败时 npm 回退机制

b il y a 1 mois
Parent
commit
8beb470a8f
1 fichiers modifiés avec 10 ajouts et 4 suppressions
  1. 10 4
      setup-pnpm.sh

+ 10 - 4
setup-pnpm.sh

@@ -77,11 +77,17 @@ if command -v pnpm >/dev/null 2>&1; then
     echo "📊 版本:$(pnpm --version)"
 else
     echo "📥 开始安装 pnpm..."
-    # 使用 corepack 启用 pnpm
+    # 方式一:使用 corepack 启用 pnpm(Node.js 内置方式)
     export COREPACK_ENABLE_DOWNLOAD_PROMPT=0;
-    if ! corepack enable pnpm; then
-        echo "❌ pnpm 启用失败"
-        exit 1
+    if corepack enable pnpm 2>/dev/null; then
+        echo "✅ corepack 方式安装成功"
+    else
+        echo "⚠️  corepack 方式失败(Node.js TLS 兼容性问题),回退到 npm 安装..."
+        # 方式二:使用 npm 安装(npm 使用独立的 HTTP 栈,更稳定)
+        if ! npm install -g --force pnpm; then
+            echo "❌ pnpm 安装失败(corepack 和 npm 方式均失败)"
+            exit 1
+        fi
     fi
 
     # 验证 pnpm 安装是否成功