5

我使用 VS Code 开发我的 AWS 托管的无服务器应用程序。该应用程序使用 Lambda。最近,我决定开始使用 Lambda 层来提取和重用通用代码。我遇到的问题是 AWS Lambda 需要以下 Lambda 层导入:

const layer = require("/opt/layer");

我想在层导出函数上获得 Intellisense:

module.exports = {
    f1(param1, param2) {
        // ...
    },

    f2(paramX, paramY, paramZ) {
        // ...
    }
}

尽管我同时拥有 lambda 和 lambda 层代码,但 VS Code 自然无法解析层文件的路径,因此 Intellisense 不起作用。

我发现如果我将下一个 jsconfig.json 文件放在我的项目中的任何位置:

{
    "compilerOptions": {
        "target": "ES6",
        "module": "commonjs"
    },
    "exclude": [
        "node_modules",
        "**/node_modules/*"
    ]
}

要求语句停止以红色显示,并且允许一些基本的文本自动完成。但它并没有真正正确地显示带有参数的图层导出函数。

我不想创建解决方案,例如在开发期间使用自定义导入,然后在部署到 AWS 期间用“require(”/opt/layer")”替换它们(或者至少有一些自动化的东西)。

可以做什么?

4

1 回答 1

5

最后,位于 lambda 文件夹中的下一个 jsconfig.json 文件对我有用(还需要重新启动 VS Code):

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es2015",
        "moduleResolution": "node",
        "baseUrl": ".",
        "paths": {
            "/opt/layer1": ["./layers/layer1"],
            "/opt/layer2": ["./layers/layer2"],
            "/opt/layer3": ["./layers/layer3"]
        }
    },
    "exclude": ["./layers/node_modules"]
}
于 2019-11-08T06:39:28.370 回答