NodeJS 无服务器GitHub操作:未找到服务器

dba5bblo  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(121)

开始使用Serverless GitHub Action(https://github.com/serverless/github-action)。我在配置文件中有几个插件,所以需要遵循他们在README中提供的指导。但是,我得到了一个serverless not found错误。我已经打开了一个issue,但还没有回应,所以认为这将是我的下一个社区要求。
配置文件:

name: Deploy main branch

on:
  push:
    branches:
      - main

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x]
    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm ci
    - name: serverless deploy
      uses: serverless/github-action@v3.2
      with:
        args: -c "cd backend/endpoints && \
                  serverless plugin install -n serverless-deployment-bucket && \
                  serverless plugin install -n serverless-python-requirements && \
                  serverless plugin install -n serverless-iam-roles-per-function && \
                  serverless plugin install -n serverless-offline && \
                  serverless deploy"
        entrypoint: /bin/sh
      env:
        SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}

但得到以下错误:

/bin/sh: 1:  serverless: not found

不确定package.json文件中需要包含哪些内容?我添加了serverless作为一个dep,但仍然是同样的错误。

wf82jlnq

wf82jlnq1#

Tl;Dr

在serverless命令前面加上npm execution命令(参考:npx

npx serverless plugin install [...]

说明

看起来shell在您将其作为依赖项安装后无法找到该命令。
这是由于本地安装的依赖项不会在其安装上下文之外提供cli命令。这也是为什么你会发现命令行工具总是在它们的安装说明中设置了“-g”标志。
要使用本地安装的任意命令,必须使用包管理器附带的执行库(npx)。

相关问题