【发布时间】:2021-10-18 20:51:38
【问题描述】:
我有一个库 foo,它是用 ES6、import/export 和 Typescript 编写的。
我有一个使用foo 的应用程序bar。 bar 也是用导出和 Typescript 编写的。我想让bar 在 AWS Lambda 上运行。
据我所知,我不能在 Lambda(运行时节点 14.x)中使用 import/export 作为
export const handler = async () => {...};
会出错,但是
exports.handler = async () => {...};
不会。
所以在我的tsconfig 内我设置了:
"target": "ES5", (or ES6)
"module": "CommonJS",
在编译器选项下。
有了这个,在 Lambda 上运行我得到错误,因为它现在尝试 require foo 库并说它必须使用 import。
我怎样才能实现我的最终目标?
在我看来,有 3 个选项,我对这些选项都不了解,因为我对 JS 的细微差别还很陌生。
- 让我的
bar应用转译,或使用 webpack,或使用任何工具在 cjs 中复制import。 - 让我的
foo库也包含 CJS 发行版(开始这样做,但为了使库在 es6 中工作,我不得不经历很多错误)。 - 我在 Lambda / Typescript 中遗漏了一些可以简化此操作的内容。
【问题讨论】:
标签: javascript typescript amazon-web-services aws-lambda