优化webpack包大小 - 可以在不导入RTDB的情况下初始化firestore吗?

时间:2018-01-11 02:26:56

标签: javascript firebase google-cloud-firestore

我正在使用webpack来编译preact / firestore应用程序,而firebase整体上贡献了1.7 MB到我编译的bundle的大小。我试图减少这个数字。

实时数据库和存储一起为捆绑包大小贡献了大约750 kb。因为我根本没有使用实时数据库和存储,所以我想将它们从捆绑包中排除。我怀疑,但不确定,如果我不再打电话

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

而是对

的影响做了些什么
import auth from 'firebase/auth';
require("firebase/firestore");

这将从我的包中删除不需要的子模块。但是,我现在无法摆脱我的firebase导入,因为我正在调用

firebase.initializeApp(config);

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

2 个答案:

答案 0 :(得分:2)

Firebase的web setup page会告诉您哪些是可选的和必需的:

  

您只需添加以下内容即可减少应用使用的代码量   你需要的功能。可单独安装的组件是:

     
      
  • firebase-app - 核心firebase客户端(必需)。
  •   
  • firebase-auth - Firebase身份验证(可选)。
  •   
  • firebase-database - Firebase实时数据库(可选)。
  •   
  • firebase-firestore - Cloud Firestore(可选)。
  •   
  • firebase-storage - 云存储(可选)。
  •   
  • firebase-messaging - Firebase云消息传递(可选)。
  •   

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

答案 1 :(得分:0)

documentation on adding Firebase to your app的最后一个示例显示了如何执行此操作:

var firebase = require("firebase/app");
require("firebase/auth");
require("firebase/firestore");

var config = {
  // ...
};
firebase.initializeApp(config);

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