我在构建 Lambda 函数时尝试使用 TypeScript,但在使用也是用 TypeScript 编写的 Lambda 层时遇到了问题。
TypeScript 无法识别我的层的 /opt/nodejs/... 导入(因为它将在 SAM 或 AWS 中运行),因此我无法将我在层中定义的类型导入到我的 Lambda 函数。
我试图查看是否能够以某种方式 npm 链接该层,但我似乎无法使其正常工作,因为导入是本地路径 '/opt/nodejs ...' 而不仅仅是模块名称。
层:
export interface SomeType {
someField: string
}
拉姆达:
import { SomeType } from '/opt/nodejs/myLayer' // this does not work
我只是收到错误消息:Cannot find module '/opt/nodejs/myLayer'.ts(2307)
我发现自己不得不用它来抑制它,// @ts-ignore can be ignored as this is a Lambda layer
但这意味着我无法使用图层中的 TypeScript 类型。