正确使用 firebase 和 @firebase npm 包

Tip*_*ipi 8 npm reactjs npm-install

当我向firebase >9.0.0 包添加依赖项时,npm install会下载 node_modules\ firebase 和 node_modules\ @firebase (没有提及)。

我知道 @firebase 是作用域包

我问是因为

  1. 似乎只有 Firebase (Google) 可以这样做,那么为什么要两个包呢?
  2. 是否应该引用@firebase,因为非官方的内容在某个时候被删除了?
  3. 代码库看起来很相似,所以有很多重复的代码。
  4. 更新可以破坏导入并更改功能,这意味着现在是否带有 @ 以及人们应该如何知道这一点,例如:

import { firebaseApp } from "firebase";

import { getMessaging } from "@firebase/messaging";

import { initializeApp } from "firebase/app";

Yil*_*maz 0

来自 npm firebase/v/9.18.0

版本 9 提供了一组与版本 8 的 API 兼容的 compat 包。它们的目的是让您可以逐个升级应用程序,从而更轻松地升级到模块化 API。

npm 中的“compat”包是指库或框架提供的兼容性包,用于帮助从旧版本迁移或过渡到新版本。

这些兼容性包的目标是让现有项目使用旧版本(版本 8)Firebase 构建的开发人员能够更顺利地过渡。开发人员可以选择使用兼容性包,而不需要立即彻底修改代码库以适应新的模块化 API。这些包提供了一个桥梁或兼容层,允许为版本 8 编写的现有代码无需进行重大修改即可与新版本 9 一起使用。

在上面的 npm 链接中有这样的用法:

// v9 compat packages are API compatible with v8 code
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
Run Code Online (Sandbox Code Playgroud)

通过使用这些兼容性包,开发人员可以逐步迁移其代码库,以使用 Firebase 版本 9 提供的新模块化 API。它允许他们继续使用熟悉的版本 8 API 语法,同时致力于将代码库的特定部分迁移到模块化结构:他们自己的步调。