【问题标题】:Serverless command "offline" not found未找到无服务器命令“离线”
【发布时间】:2020-12-09 21:54:28
【问题描述】:

我正在运行我的 nodejs 代码并且还安装了无服务器(npm i -g serverless),但是在使用命令 sls offline start --CacheInvalidations 运行它时,我收到以下错误:-

无服务器错误 ---------------------------

未找到无服务器命令“离线”。您指的是 “config” 吗?运行“无服务器帮助”以获取所有可用命令的列表。

获得支持 --------------------------------------------------------

 Docs:          docs.serverless.com
 Bugs:          github.com/serverless/serverless/issues
 Issues:        forum.serverless.com

您的环境信息---------------

 Operating System:          linux
 Node Version:              12.18.2
 Framework Version:         1.79.0
 Plugin Version:            3.7.1
 SDK Version:               2.3.1
 Components Version:        2.34.6

【问题讨论】:

  • 在我的情况下,我在 node_modules 下正确安装了模块,但它仍然无法正常工作。我发现我从基本应用程序文件夹执行命令 >sls 脱机启动的问题,但是您必须从 SERVICE_FOLDER 执行命令。希望这可能对某人有所帮助....
  • 在我的情况下,我必须运行 sudo npm install serverless -g 并且像魅力一样工作

标签: javascript node.js serverless serverless-offline


【解决方案1】:

您需要使用 npm 安装 serverless-offline 插件才能使用 sls offline 命令。

只需运行:

npm i -g serverless-offline

在您的设备上全局安装 或

npm i serverless-offline --save-dev

将其安装为活动项目中的开发依赖项。 然后将此配置添加到您的无服务器模板中:

plugins:
  - serverless-offline

有关serverless-offline插件的更多信息,请查看 serverless 官方文档:

Serverless Offline | Emulate AWS λ and API Gateway locally when developing your Serverless project

Serverless Offline NPM

【讨论】:

  • 确保在无服务器模板上点击保存,我习惯使用自动保存 IDE,所以当我切换到其他东西时,我在添加插件后忘记保存
  • 好的,更重要的一点是serverless.yaml 必须与node_modules 文件夹位于同一文件夹中
  • @Madeo 但通常是无服务器的,在创建项目时它会创建正确的文件夹,我们可以指出插件来引用一个文件夹吗?
【解决方案2】:

您必须安装该软件包(或在您的项目中本地安装或全局安装)。我建议全局安装。

npm i -g serverless-offline

或

yarn global add serverless-offline

在您的 serverless.yml 文件中,在插件会话中添加以下代码:

插件:

  • 无服务器离线

它会解决你的问题

【讨论】:

    【解决方案3】:

    不确定你是否解决了这个问题,但我遇到了同样的问题,对我来说这是一个愚蠢的错误,YML 文件的缩进错误,修复缩进后它开始正常工作

    【讨论】:

      【解决方案4】:

      使用yarn 安装依赖项,您可以运行以下命令:

      安装:

      yarn add serverless-offline -D
      

      运行:

      yarn serverless offline start
      

      【讨论】:

        【解决方案5】:

        首先,您必须在全局范围内离线安装无服务器。

        npm i -g serverless-offline
        

        接下来,您应该检查一个 serverless.yml 文件。否则,您必须创建一个 serverless.yml 文件。

        service: your-service-name
        app: app-name
        provider:
          name: aws
          runtime: nodejs10.x
          timeout: 60
          memorySize: 128
          deploymentBucket: bucket-name
        # you can overwrite defaults here
          stage: prod
          region: your-aws-region
        functions:
          your-function-name:
            handler: handler.dispatch
            memorySize: 128
            timeout: 60
            events:
              #- http: POST /hello
              - http: 'ANY {proxy+}'
        plugins:
          - serverless-offline
          - serverless-aws-alias
        

        【讨论】:

          【解决方案6】:
          1. 确保已安装 serverless-offline(全局或在项目中)
          2. 将这些行添加到 serverless.yml

          plugins:
            # Needed to run & debug locally
            - serverless-offline

          【讨论】:

            【解决方案7】:

            我在使用 nodejs 设置 serverless.yml 并在本地运行时遇到了同样的问题。两个步骤解决了问题。

            1. 全局安装无服务器离线包。

            npm i -g serverless-offline

            1. 在 serverless.yml 文件的插件键下添加相同的包。

            plugins:
            - serverless-offline

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-10-19
              • 2021-07-09
              • 1970-01-01
              • 2012-06-23
              • 2017-04-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多