我使用 github action 和 vercel 将我的项目(vite+react+pnpm)部署到 vercel,action 说错误:“错误:spawn pnpm ENOENT”

no1*_*bus 3 action github vercel pnpm vite

当我推送我的 github 项目时,执行了 github 操作,但失败了,该操作的错误消息如下:

Run vercel build --prod --token=***
Vercel CLI 28.10.3
Detected `pnpm-lock.yaml` generated by pnpm 7...
Installing dependencies...
Error: spawn pnpm ENOENT
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

这是我的操作 yml 设置:

name: Vercel Deployment
env:
  VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
  VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
on:
  push:
    branches:
      - master
jobs:
  Deploy-Production:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18.12.1
      - name: Install Vercel CLI
        run: npm install --global vercel@latest
      - name: Pull Vercel Environment Information
        run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
      - name: Build Project Artifacts
        run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
      - name: Deploy Project Artifacts to Vercel
        run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ter 7

我也遇到了同样的错误,但我通过以下方式修复了它

  • 首先安装pnpm
  • 通过以下方式安装 Vercel CLI pnpm add --global vercel@latest
jobs:
  deploy-production:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18
      - uses: pnpm/action-setup@v2
        name: Install pnpm
        id: pnpm-install
        with:
          version: 7
          run_install: false
      - name: Install Vercel CLI
        run: pnpm add --global vercel@latest
      - name: Pull Vercel Environment Information
        run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
      - name: Build Project Artifacts
        run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
      - name: Deploy Project Artifacts to Vercel
        run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
Run Code Online (Sandbox Code Playgroud)