热重载时 CDK 未检测到 lambda 的打字稿文件

CDK not detecting typescript file for lambda when hot reloading

我有一个使用打字稿的 CDK 应用程序。我想要快速开发,所以我一直在使用 cdk watch。每当我进行更改时,都会部署 cdk 堆栈。这很好用,但是,该应用程序在部署后未检测到我的打字稿 lambda 源代码,但它会在我构建打字稿后检测到 javascript 文件。我的印象是我不需要构建我的打字稿文件来部署 cdk 应用程序。

下面是我如何创建 lambda

const testLambda = new lambda.Function(this, 'TestLambda', {
  runtime: lambda.Runtime.NODEJS_14_X,
  handler: 'api/example/get.handler',
  code: lambda.Code.fromAsset('src/')
});

当我点击 API 时,我得到错误 Cannot find module get,但是如果我 运行 tsc 然后点击 api,它将找到创建的 get.js 文件。

每次部署前我都必须构建我的 tsc 文件吗?如果是这样,我如何检测 typescript 文件中的更改、构建它们,然后部署 cdk 堆栈?

将Typescript编译命令添加到cdk.json:

"build": "tsc",

cdk watch executes the "build" command from cdk.json to build your app before synthesis. If your deployment requires any commands to build or package your Lambda code (or anything else that's not in your CDK app proper), add it here.