如何使用嵌入在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
EXPERTE
gefragt vor 5 Monaten64 Aufrufe
1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen