当我向 firebase >9.0.0 包添加依赖项时,
npm install
会同时下载 node_modules\ firebase 和 node_modules\ @firebase (没有提及)。
我知道 @firebase 是 scoped 包。
我问是因为
import { firebaseApp } from "firebase";
import { getMessaging } from "@firebase/messaging";
import { initializeApp } from "firebase/app";
版本9提供了一组API兼容的compat包 与版本 8. 它们旨在用于升级到 通过允许您升级您的应用程序,模块化 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';
通过使用这些兼容性包,开发人员可以逐步迁移其代码库以使用 Firebase 版本 9 提供的新模块化 API。它允许他们继续使用熟悉的版本 8 API 语法,同时致力于将代码库的特定部分迁移到模块化结构按照自己的节奏。