如何使用嵌入在CDK项目中的模块处理Typescript lambdas

0

【以下的问题经过翻译处理】 我有一个问题,它可能是一个 CloudFormation 问题,但我猜实际上是 CDK 问题。我的项目布局看起来像这样:

work/. ├───cdk.out ├───bin ├───lib ├───node_modules ├───src │ ├───common │ ├───ep │ ├───sites │ └───static ├───package.json ├───tsconfig.json └───test

ep,sites 和 static 目录都是单独的 lambda 函数;构造器脚本像这样调用它们:

entry: path.join(__dirname, "../src/sites/sites.ts"),

所以这很好用。在 package.json 中,我非常注意把内容分为“dependencies”和“devDependencies”,以避免冲突和膨胀。

不过,我想到有一天我可能会遇到其他问题,比如冲突,所以我在寻找方法,看看是否可以为每个单独的 lambda 函数(ep,sites,static)提供它们自己的 package.json ,甚至是 tsconfig.json。我发现有些东西说它能够工作,但有些则说它不能。yarn build只显示它运行一次 tsc。我认为解决方法是使用 模块,但由于你要将入口点(作为一个指向单个文件的路径)定义的方式,我不认为这会起作用。

我不确定如何使 CDK 项目内的 lambda 函数更加独立。我需要将它们构建为它们自己的单独项目(CDK 项目之外),将它们捆绑(例如使用 webpack),然后让 CDK 项目引用每个项目的构建输出吗?这听起来有点

profile picture
专家
已提问 1 年前88 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好! 我看到其他人使用了像Lerna(https://lerna.js.org/)这样的工具来解决这个问题。然而,我对于走向monorepo方向持谨慎态度,因为CDK团队已经在JS/TS lambda打包和部署的周边工具方面进行了深入开发。如果你选择这条路,你将会重新发明轮子,只能在问题普遍存在且不是一锤子买卖时才推荐这样做。

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则