迁移至pnpm后GitHub Actions报pnpm命令未找到,求正确YAML配置
解决GitHub Actions中pnpm命令未找到的问题
你遇到的pnpm: command not found错误,是因为GitHub Actions的Ubuntu runner默认没有预装pnpm,而当前配置仅安装了Node.js,未额外安装pnpm工具。
以下是修正后的完整工作流配置,同时移除了不必要的ACTIONS_ALLOW_UNSECURE_COMMANDS配置(该配置为旧版GitHub Actions兼容项,当前版本已无需设置):
name: Lint & Unit Test on: [pull_request] jobs: run-linters: name: Run linter and Unit tests runs-on: ubuntu-latest steps: - name: Check out Git repository uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: 16.18.1 # 若项目根目录package.json中配置了packageManager字段(如"packageManager": "pnpm@8.6.12"),可启用下面这行自动安装对应版本pnpm # cache: 'pnpm' - name: 安装pnpm run: | corepack enable corepack prepare pnpm@latest --activate # 也可选择npm全局安装方式:npm install -g pnpm - name: Portal Install Node.js dependencies working-directory: ./portals run: pnpm install - name: Portals Lint & tests working-directory: ./portals run: | cat .env.example > .env pnpm run build:tailwind pnpm run lint pnpm test - name: Services Install Node.js dependencies working-directory: ./services run: pnpm install - name: Services Lint & tests working-directory: ./services run: | pnpm run lint pnpm test
关键修改说明:
- 添加安装pnpm步骤:利用Node.js内置的
corepack工具启用并安装pnpm(Node.js 16.13.0及以上版本默认包含corepack),也可选择npm install -g pnpm直接全局安装。 - 可选优化:如果项目根目录
package.json中配置了packageManager字段(例如"packageManager": "pnpm@8.6.12"),可在setup-node步骤中添加cache: 'pnpm',此时setup-node会自动识别并安装指定版本的pnpm,无需手动编写安装命令。
内容的提问来源于stack exchange,提问作者Hamzah Hameed
相关产品推荐
相关产品推荐

