Firebase 云函数项目上的多个包

问题描述

有没有办法通过 cli 命令 (firebase deploy --only functions) 使用这种架构来拥有 Firebase/Google 云功能

预期:

.
└── functions/
    ├── function_using_axios/
    │   ├── node_modules/
    │   ├── package.json
    │   └── index.js
    └── function_using_moment/
        ├── node_modules/
        ├── package.json
        └── index.js

目前,我的 archi 是这样的:

.
└── functions/
    ├── node_modules/
    ├── package.json
    ├── index.js
    ├── function_using_axios.js
    └── function_using_moment.js

事实是,对于某些功能我有很多无用的包依赖项。 并且增加冷启动时间。

我知道这可以通过 Web UI 实现。

WEB UI 示例:

列表

List web UI

一包一功能

Function with his own package


我当前的 Archi 在 WEB UI 上看到,一个包所有功能

One package for all functions

有什么想法吗?

谢谢。

解决方法

当通过 Firebase 部署时,只能有一个 index.js 文件,尽管 gcloud 在这方面可能有所不同。

为确保您只加载每个函数需要的依赖项,请将每个依赖项的 require 移动到需要它的函数中:

exports.usageStats = functions.https.onRequest((request,response) => {
  const module = require('your-dependency');
  // ...
});

另见:

  • organizing functions 上的 Firebase 文档,它展示了一种在多个文件上使用函数的方法(尽管您仍然需要在 index.js 中导入/导出它们)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...