GatsbyJS + Firebase:initializeApp 不是函数

GatsbyJS + Firebase : initializeApp is not a function

我完全卡住了。

使用 gatsby-next 和 React 16 + 最新的 Firebase 5.5.7 设置 GatsbyJS 1

在开发模式下一切正常,但是当我尝试构建时我总是得到: WebpackError: _firebase2.default.initializeApp is not a function

我已经尝试了以下所有类型的 if imports,并且都导致了这个错误: import firebase from 'firebase'; // const firebase = require('firebase/app') // import * as firebase from 'firebase'; var config = { ... }; firebase.initializeApp(config);

我已经尝试更新到所有库的最新版本。由于大量迁移,目前我无法真正更新的唯一一个是 GatsbyJS 2.0

这是我的 package.json: "dependencies": { "@material-ui/core": "^3.2.2", "@material-ui/icons": "^3.0.1", "aws-sdk": "^2.345.0", "cookieconsent": "^3.0.6", "firebase": "^5.5.7", "firebaseui": "^3.4.1", "fsevents": "^1.2.4", "gatsby": "^1.9.279", "gatsby-link": "^1.6.46", "gatsby-plugin-google-analytics": "^1.0.20", "gatsby-plugin-i18n": "^0.4.1", "gatsby-plugin-react-helmet": "^1.0.8", "gatsby-plugin-react-next": "^1.0.11", "material-ui-chip-input": "^1.0.0-beta.8", "paypal-checkout": "^4.0.228", "react": "^16.5.2", "react-dom": "^16.5.2", "react-firebaseui": "^3.1.2", "react-intl": "^2.4.0", "reactstrap": "^6.5.0" },

有一段时间,项目在一些旧版本的库上 运行 没问题。

长话短说,Firebase 现在包含在内部引用 self 的 Fetch polyfill,因此它不适用于 gatsby。

解决方法是不使用 null-loader 加载 firebase,但在构建期间您不能引用任何与 firebase 相关的内容,包括身份验证提供程序的属性

问题似乎仅限于 Gatsby v1 with Firebase 5.0.+

由于 pre-gyp 和节点版本冲突问题,无法回滚到旧版本的 Firebase。

在以下位置发布错误:https://github.com/gatsbyjs/gatsby/issues/9681