gpt4 book ai didi

google-cloud-functions - 谷歌云功能 : How do you share source code?

转载 作者:行者123 更新时间:2023-12-05 00:16:03 25 4
gpt4 key购买 nike

我有一个节点服务器和多个 Controller ,它们在该目录中执行数据库操作和帮助程序(例如电子邮件)。

我想在我的函数中使用该目录中的源代码。假设以下目录结构:

src/
server/
/app/controllers/email_helper.js
fns/
send-confirm/

什么是最好的使用方法 email_helper在发送确认功能中?

我试过了:
  • 符号链接(symbolic link)“服务器”目录
  • 添加本地仓库到 send-confirm/package.json

  • 以上都不起作用。

    最佳答案

    原则上,您的 Cloud Functions 可以使用任何其他 Node.js 模块,就像任何标准 Node.js 服务器一样。但是,由于 Cloud Functions 需要在云中构建您的模块,它需要能够从云中找到这些依赖模块。这就是问题所在。

    Cloud Functions 可以从以下任一位置加载模块:

  • 任何公共(public) npm 存储库。
  • 任何网络可见的 URL。
  • functions/ 中的任何地方firebase init 的目录为您生成,并上传到 firebase deploy .

  • 在您的情况下,从 functions/package.json 的角度来看, ../server/目录不属于任何这些类别,因此 Cloud Functions 无法使用您的模块。不幸的是, firebase deploy不遵循符号链接(symbolic link),这就是该解决方案不起作用的原因。

    我看到两个可能的立即修复:
  • 移动您的server/ functions/ 下的目录.我意识到这不是最漂亮的目录布局,但它是黑客攻击时最简单的修复。在 functions/package.json然后,您可以对 ./server 进行本地依赖。 .
  • 在某处的 URL 后面公开您的代码。例如,您可以打包一个 .tar并将其放在 Google Drive 或 Firebase Cloud Storage 上。或者,您可以使用公共(public) git 存储库。

  • 将来,如果 firebase deploy,我会喜欢它遵循符号链接(symbolic link)。我已经在 Firebase 的内部错误跟踪器中提交了一个功能请求。

    关于google-cloud-functions - 谷歌云功能 : How do you share source code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42842018/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com