相关疑难解决方法(0)

无法在AWS Lambda函数上使用ES6;如何在 Lambda 中导入 ES6 模块

我有一个用 ES6和 Typescriptfoo编写的库。import/export

我有一个bar使用foo. bar也是用导出和 Typescript 编写的。我想bar在 AWS Lambda 上运行。

据我所知,我无法import/export在 Lambda(运行时节点 14.x)中使用

export const handler = async () => {...};
Run Code Online (Sandbox Code Playgroud)

会报错,但是

exports.handler = async () => {...};
Run Code Online (Sandbox Code Playgroud)

将不会。

所以在我的内部tsconfig我已经设置了:

    "target": "ES5", (or ES6)
    "module": "CommonJS",
Run Code Online (Sandbox Code Playgroud)

在编译器选项下。

这样,在 Lambda 上运行时我会收到错误,因为它现在尝试访问requirefoo库并表示它必须使用import.

我怎样才能实现我的最终目标?

在我看来,有 3 个选项,但我对其中没有一个了解很多,因为我对 JS 的细微差别还很陌生。

  • 让我的bar应用程序转译,或者使用 webpack,或者任何可以import在 cjs 中复制的工具。
  • 让我的foo库也包含一个 CJS 发行版(开始这样做时,我遇到了很多错误,我必须让该库在 es6 …

javascript amazon-web-services typescript aws-lambda

5
推荐指数
1
解决办法
4565
查看次数