优化 webpack bundle大小 - 是否可以在不导入 RTDB 的情况下初始化 firestore



我正在使用webpack来编译一个preact/firestore应用程序,Firebase总体上为我的编译捆绑包的大小贡献了1.7 MB。 我正在尝试减少这个数字。

实时数据库和存储共同贡献了大约 750 kb 的捆绑包大小。 由于我根本没有使用实时数据库和存储,因此我想将它们从捆绑包中排除。 我怀疑,但不确定,如果我停止打电话

import firebase from 'firebase';
require("firebase/firestore");

而是做一些事情,大意是

import auth from 'firebase/auth';
require("firebase/firestore");

这将从我的捆绑包中删除不需要的子模块。 但是,我现在无法摆脱我的火力基地导入,正如我所说的那样

firebase.initializeApp(config);

根据文档。 我可以在不调用 firebase.initializeApp 的情况下初始化 firestore 吗?

Firebase 的网页设置页面会告诉您什么是可选的和必需的:

你可以通过仅包含 您需要的功能。可单独安装的组件包括:

  • Firebase-app - 核心 Firebase 客户端(必需(。
  • Firebase-auth - Firebase 身份验证(可选(。
  • Firebase-database - Firebase Realtime Database (可选(。
  • 垒-火库 - 云云恢复(可选(。
  • Firebase-Storage - Cloud Storage(可选(。
  • Firebase 消息传递 - Firebase 云消息传递(可选(。

无论您打算使用 Firebase 的哪个部分,您都需要调用 initializeApp((。 该调用指示正在使用哪个项目。

文档中关于将 Firebase 添加到应用的最后一个示例展示了如何执行此操作:

var firebase = require("firebase/app");
require("firebase/auth");
require("firebase/firestore");
var config = {
  // ...
};
firebase.initializeApp(config);

正如道格所说,initializeApp(...)总是需要的。

最新更新