首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过无服务器失败编译类型记录

通过无服务器失败编译类型记录
EN

Stack Overflow用户
提问于 2021-01-11 02:30:15
回答 2查看 5.5K关注 0票数 1

我有一个基于类型记录的Lambda函数,它使用tsc编译得很好,但是当我试图通过Serverless部署时,类型记录复杂性会失败,出现以下错误:

代码语言:javascript
复制
Serverless: Running "serverless" installed locally (in service node_modules)
Serverless: Compiling with Typescript...
Serverless: Using local tsconfig.json
Serverless: Warning: "rootDir" from local tsconfig.json is overriden
Cannot locate handler - account. not found
 
  Error --------------------------------------------------
 
  Error: Typescript compilation failed. Please ensure handlers exists with ext .ts or .js
      at /Users/bob/Development/service-account/node_modules/serverless-plugin-typescript/src/typescript.ts:69:13

account.ts代码的相关块如下:

代码语言:javascript
复制
import { APIGatewayProxyHandler, APIGatewayEvent, Context } from 'aws-lambda';
import 'source-map-support/register';

export const handler: APIGatewayProxyHandler = async (event: APIGatewayEvent, context: Context): Promise<any> => {
    console.debug(`event: ${JSON.stringify(event, null, 1)}`);
    console.debug(`context: ${JSON.stringify(context, null, 1)}`);
...
}

serverless.yml文件的相关部分是:

代码语言:javascript
复制
plugins:
  - serverless-iam-roles-per-function
  - serverless-plugin-typescript
  - serverless-webpack

service: accounts

custom:
  webpack:
    webpackConfig: ./webpack.config.js
    includeModules: true

functions:
  account:
    handler: account.handler
...

tsconfig.json相当标准:

代码语言:javascript
复制
{
  "compilerOptions": {
    "target": "es2019",
    "module": "commonjs",
    "lib": [
      "es2020",
      "dom"
    ],
    "strict": true,
    "esModuleInterop": true,
    "rootDir": "./src",
    "outDir": "./dist",
  },
  "include": [
    "./src/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

目录树如下所示:

代码语言:javascript
复制
config <dir>
dist <dir>
node_modules <dir>
src <dir>
  account.ts
swagger <dir>
package.json
tsconfig.json
webpack.config.js
serverless.yml

关于我在连接所有的点以使它在Serverless中运行时所缺少的内容的想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-11 03:12:40

您需要提供到处理程序的相对路径,这应该可以工作。

代码语言:javascript
复制
functions:
  account:
    handler: "./src/account.handler"

您可以选择省略./handler: "src/account.handler"也应该工作。

票数 5
EN

Stack Overflow用户

发布于 2021-06-23 02:03:33

修改文件tsconfig.json

变化

代码语言:javascript
复制
"include": [
    "./src/*.ts"
]

代码语言:javascript
复制
"include": [
    "./src/**/*.ts"
]
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65660643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档