这是解决方法。在 component_a/s-function.json 替换
"handler": "handler.handler",
和
"handler": "component_a/handler.handler",
在 function_1.js 中调用 util.js 之类的
u = require('../lib/util')
来自无服务器文档
handler 属性使您能够在函数之间共享代码。默认情况下,handler 属性是 handler.handler,这意味着它只与函数文件夹相关,因此只有函数文件夹会部署到 Lambda。
但是,如果要包含函数的父子文件夹,则应将处理程序更改为:
functionName/handler.handler
如您所见,处理程序的路径现在包含函数文件夹,这意味着路径是现在相对于父子文件夹,因此在这种情况下,父子文件夹将与您的函数一起部署。因此,如果您的函数所需的父子文件夹中有一个 lib 文件夹,它将与您的函数一起部署。
这也使您能够随心所欲地处理 npm 依赖项。如果您在该父子文件夹中有 package.json 和 node_modules,它将包含在已部署的 lambda 中。因此,您在处理程序路径中包含的父文件夹越多,您在文件树中的位置就越高。