首页 > 解决方案 > 如何在不导入 firebase 模块的情况下访问 Firebase 类型?

问题描述

在我的 web 应用程序中,我使用 CDN 中的 Firebase 来限制从我的帐户传输的数据量,如此处所示。通过使用来自 CDN 的外部脚本,我不必将 firebase 模块与我的代码捆绑在一起,因此我的捆绑包更小。

现在我的问题是,当我在 typescript 中为我的 webapp 编写代码时,我想使用 firebase 提供的类型。在不导入 firebase 模块的情况下如何实现这一点?

标签: typescriptfirebase

解决方案


我找到了一个解决方案:我可以导入 firebase 模块,在 typescript 编译期间使用它,最后通过webpack externals config将它从我的包中排除:

在我的html代码中:

<script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-firestore.js"></script>
<script src="bundle.js"></script>

在我的打字稿代码中:

import firebase from "firebase";

firebase.initializeApp(...

在 webpack.config.js 中:

externals: ["firebase"],

我已经验证我的捆绑包要小得多:从 139kB 到 53kB。


推荐阅读