CDK在热加载时不检测lambda的typescript文件



我有一个CDK应用程序,是在typescript。我想要快速开发,所以我一直在使用cdk watch。每当我进行更改时,就会部署cdk堆栈。这工作得很好,然而,应用程序在部署后不检测我的typescript lambda源代码,但它会在我构建typescript后检测javascript文件。在我的印象中,我不需要构建我的typescript文件来部署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执行"build"从cdk.json命令,在合成之前构建您的应用程序。如果您的部署需要任何命令来构建或打包Lambda代码(或任何不在CDK应用程序中的其他代码),请在此处添加。

最新更新