如何配置 Visual Studio Code 以解析 AWS Lambda 层的输入路径 (javascript)
Posted
技术标签:
【中文标题】如何配置 Visual Studio Code 以解析 AWS Lambda 层的输入路径 (javascript)【英文标题】:How configure Visual Studio Code to resolve input paths for AWS Lambda Layers (javascript) 【发布时间】:2020-03-01 18:21:01 【问题描述】:我使用 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/*"
]
require 语句不再显示为红色,并且允许一些基本的文本自动完成。但它并没有真正正确地显示带参数的图层导出函数。
我不想创建解决方案,例如在开发期间使用自定义导入,然后在部署到 AWS 期间用“require(”/opt/layer")”替换它们(或者至少有一些自动化的东西)。
可以做什么?
【问题讨论】:
可能对你有帮助:***.com/a/57553831/2692307 @LukasBach 感谢您的建议,但看起来它不会影响任何事情。我注意到,即使“jsconfig.json”文件中没有任何内容,它也会删除“require”上的错误......这里有一些魔力。但 Intellisense 仍然无法正常工作 【参考方案1】:最后,位于 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"]
【讨论】:
对于尝试在 node_modules 上获取 IntelliSense 的人,请务必明确定义路径:"paths": "googleapis": ["../layers/nodejs/node_modules/googleapis"]
以上是关于如何配置 Visual Studio Code 以解析 AWS Lambda 层的输入路径 (javascript)的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio Code 配置 Markdown
如何使用 Visual Studio Code 创建基本内容以在 localhost 上运行?