问题描述
我正在运行我的nodejs代码,并且还安装了无服务器( npm i -g无服务器),但是在使用命令sls offline start --CacheInvalidations
运行它时,出现以下错误:-
无服务器错误---------------------------------------
找不到无服务器命令“离线”。您是说“配置”吗?运行“无服务器帮助”以获取所有可用命令的列表。
获得支持--------------------------------------------
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
解决方法
您需要使用npm安装serverless-offline
插件才能使用sls offline
命令。
只需运行:
npm i -g serverless-offline
在设备上全局安装 或
npm i serverless-offline --save-dev
将其安装为活动项目中的开发依赖项。 然后将此配置添加到您的无服务器模板中:
plugins:
- serverless-offline
有关serverless-offline
插件的更多信息,请查看无服务器官方文档:
Serverless Offline | Emulate AWS λ and API Gateway locally when developing your Serverless project
,您必须安装该软件包(或在您的项目中本地安装或在全球安装)。我建议您全局安装。
npm i -g serverless-offline
或
yarn global add serverless-offline
在您的serverless.yml文件中,在插件会话中添加以下代码:
插件:
- 无服务器离线
它将解决您的问题
,不知道您是否解决了这个问题,但是我遇到了同样的问题,对我来说这是一个愚蠢的错误,YML文件的缩进是错误的,在修复了缩进之后它就可以正常工作了
,使用yarn安装依赖项,您可以运行以下命令来运行该命令:
安装:
yarn add serverless-offline -D
运行:
yarn serverless offline start
,
首先,您必须全局安装无服务器离线版本。
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