gpt4 book ai didi

firebase - 如何正确地进行树抖动以减少包大小并为每个云功能单独入口点

转载 作者:行者123 更新时间:2023-12-02 00:52:34 26 4
gpt4 key购买 nike

我正在使用带有 TypeScript 的 Google Firebase Cloud Functions,我发现即使每个函数都是单独部署的,它们都共享相同的包和依赖项,即使某些函数不使用它们也不导入它们。

就我而言,一个云功能使用 Redis,而其他云功能不使用。我有 10 个功能。所有 10 个函数实际上最终都导入了与 redis 相关的代码,即使它们没有导入它们。

由于所有函数共享相同的入口点,index.js。目前似乎不可能为每个函数设置单独的摇树捆绑包/入口点。

这在捆绑包大小/冷启动时间/内存等方面非常低效。这也意味着随着我拥有越来越多的功能,捆绑包大小将随着所有功能一起增长。它不可扩展。

有没有办法不共享入口点 index.js,并通过使用 webpack 之类的捆绑器来完全独立的捆绑包?

最佳答案

您可以为应该与其他功能隔离部署的每个功能创建不同的本地 Firebase 工作区(使用 firebase init)。您必须使用 --only functions:yourFunctionName 指示 CLI 不要在部署时覆盖其他功能。部署它。

或者,您可以使用 Cloud 工具 (gcloud) 而不是 Firebase 工具来部署函数,但您将无法使用 firebase-functions 及其 TypeScript 绑定(bind)。

或者,您可以延迟加载模块,而不是在函数的全局范围内静态加载它们,如 this video 中所述。 .

我不建议使用 webpack。配置它不值得你花时间。

关于firebase - 如何正确地进行树抖动以减少包大小并为每个云功能单独入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56423219/

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