Ars*_*min 10 javascript node.js aws-lambda visual-studio-code aws-lambda-layers
我使用 VS Code 开发 AWS 托管的无服务器应用程序。该应用程序使用 Lambda。最近,我决定开始使用 Lambda Layers 来提取和重用公共代码。我遇到的问题是 AWS Lambda 需要 Lambda 层的以下导入:
const layer = require("/opt/layer");
Run Code Online (Sandbox Code Playgroud)
我想在层导出函数上获得智能感知:
module.exports = {
f1(param1, param2) {
// ...
},
f2(paramX, paramY, paramZ) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
尽管我同时拥有 lambda 和 lambda 层代码,但 VS Code 自然无法解析层文件的路径,因此 Intellisense 不起作用。
我发现如果我将下一个 jsconfig.json 文件放在项目中的任何位置:
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs"
},
"exclude": [
"node_modules",
"**/node_modules/*"
]
}
Run Code Online (Sandbox Code Playgroud)
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"]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2528 次 |
最近记录: |