如何配置 Visual Studio Code 来解析 AWS Lambda 层的输入路径 (javascript)

2024-02-29

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

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

我想在层导出函数上获得智能感知:

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/*"
    ]
}

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

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

可以做什么?


最后,位于 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"]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置 Visual Studio Code 来解析 AWS Lambda 层的输入路径 (javascript) 的相关文章

随机推荐