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

Gar*_*day 2 typescript aws-cdk

我有一个使用 typescript 的 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/')
});
Run Code Online (Sandbox Code Playgroud)

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

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

fed*_*nev 7

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

"build": "tsc",
Run Code Online (Sandbox Code Playgroud)

cdk watch在综合之前执行“build”命令来cdk.json构建您的应用程序。如果您的部署需要任何命令来构建或打包 Lambda 代码(或 CDK 应用程序中不存在的任何其他命令),请在此处添加。