如何在GitHub Actions中使用pnpm替代npm并解决命令未找到错误
解决GitHub Actions中
pnpm: command not found的问题 问题原因
GitHub Actions默认的Ubuntu runner环境没有预装pnpm,直接执行pnpm命令会出现找不到的错误。
修改方案
在执行pnpm install之前,添加安装pnpm的步骤,推荐使用官方维护的setup-pnpm action来配置,确保版本可控且安装高效。
修改后的完整配置文件:
name: Generate a build and push to another branch on: push: branches: - main jobs: build: runs-on: ubuntu-latest name: Build and Push steps: - name: git-checkout uses: actions/checkout@v3 # 新增:安装并配置pnpm - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 # 可根据项目需求指定pnpm版本,比如7、8等 # 可选:配置对应版本的Node.js(项目有版本要求时添加) - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: 18 # 替换为你的项目所需Node版本 cache: 'pnpm' # 启用pnpm依赖缓存,加速后续流水线执行 - name: Install all dependencies run: pnpm install - name: Build run: pnpm run build # The build command of your project - name: Push uses: s0/git-publish-subdir-action@develop env: REPO: self BRANCH: build # The branch name where you want to push the assets FOLDER: dist # The directory where your assets are generated GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # GitHub will automatically add this - you don't need to bother getting a token MESSAGE: "Build: ({sha}) {msg}" # The commit message
关键说明
- 使用官方
pnpm/action-setupaction可以快速完成pnpm的安装和环境配置,避免手动安装的复杂度。 - 开启
cache: 'pnpm'后,GitHub Actions会缓存pnpm的依赖包,大幅缩短后续流水线的依赖安装时间。 - 根据项目实际情况调整pnpm和Node.js的版本号即可。
内容的提问来源于stack exchange,提问作者DevonDahon
相关产品推荐
相关产品推荐

