如何在 Netlify lambda 函数之间共享代码

Jon*_*att 5 code-sharing aws-lambda netlify serverless netlify-function

我有 3 个独立的函数,每个函数都在它们自己的文件夹中。它们都使用 Twilio 客户端和 Apollo 客户端分别处理 SMS 和 GraphQL 服务器。

与其在每个文件中都拥有实例化每个客户端(从 env 等获取密钥)的所有代码,不如将它放在某个地方并需要它?

我尝试将代码放入顶级函数/文件夹中的 .js 文件中,并在函数代码中要求它,如下所示,这在本地运行良好,netlify devModule not found '../twilioClient'在实时环境中调用函数时出错。

/functions
  apolloClient.js
  twilioClient.js
  package.json - specifying deps used by above files
  /auth
    auth.js - require('../apolloClient')
    ...
  /trails
    trails.js - require('../twilioClient') etc.
    ...
Run Code Online (Sandbox Code Playgroud)

nom*_*oda 2

我确实在将共享模块放入本地 npm 包中取得了一些成功(本地和实时):

\n\n
/functions\n  /utils\n    package.json\n    index.js\n  /src\n    /auth\n      auth.js\n    /trails\n      trails.js\n  package.json\n
Run Code Online (Sandbox Code Playgroud)\n\n

导出 中的所有常用模块并在 中functions/utils/index.js设置属性。"main": "index.js"functions/utils/package.json

\n\n

functions/package.json安装模块中:

\n\n
{\n  "dependencies": {\n    ...\n    "utils": "file:utils"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

并将其导入到您的函数中(在 中functions/src/auth/auth.js):import { apolloClient, twilioClient }\xc2\xa0from "utils"

\n\n

请查看此存储库以供参考。

\n