导入不适用于 Firebase Client v9 (npm)

Imports not working on Firebase Client v9 (npm)

上下文:

我终于主动将我的应用程序中的 Firebase 库从 9.0.2 兼容版调整为新的模块化、可摇树优化库。我在 Windows 10,使用 WebStorm,我的 package.json 只有依赖项 { "firebase": "^9.0.2" }.

什么应该有效:

当我尝试导入 initializeApp 时,如文档中所示:

import { initializeApp } from 'firebase/app';
const firebaseApp = initializeApp({ /* config */ });

我收到错误 Cannot resolve symbol 'initializeApp'

尝试修复:

我正在一个简单的 Vue.js 项目中测试这个新的 Firebase 库,只配置了 ESLint 和 Babel。我尝试删除 node_modules 文件夹,清除 chace,从 npm 重新安装所有内容,但似乎没有任何东西可以使标准导入工作。

当前解决方法:

我查看了 node_modules/firebase,果然,所有标准函数都在 javascript 文件中,例如 firebase-app.jsfirebase-auth.js。这意味着我可以按如下方式导入所有内容:

import { initializeApp } from 'firebase/firebase-app';
const firebaseApp = initializeApp({ /* config */ });

但我确信这不正常,也不是预期的,因为我似乎是唯一报告过此行为的人。我在这里错过了什么?

更新: 正如@Dharmaraj 所说,在 VS Code 中配置同一个项目时不会发生此错误,因此这似乎是 WebStorm 问题。

所以这确实是 WebStorm 的问题。正如@LazyOne 指出的那样,我们可以找到有关 Cannot resolve symbol ... 问题 here and here 的解决方案,涉及 WebStorm 和 PhpStorm。

TL;DR: 您所要做的就是:打开 node_modules,右键单击模块(文件夹)@firebase 和 select Mark as not excluded.

这意味着您的 IDE 现在将为这些文件编制索引,并且现在可以从 @firebase 中的文件导入函数,因为它们可以被程序识别。

感谢所有参与的人!