GatsbyJS + Firebase:initializeApp不是函数

时间:2018-11-03 11:41:33

标签: reactjs firebase gatsby

我完全被困住了。

通过gatsby-next和React 16 +最新的Firebase 5.5.7设置了GatsbyJS 1

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

如果已经导入,我已经尝试了以下所有类型,并且所有这些都会导致此错误: 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" },

一段时间以来,项目在某些旧版本的库上运行良好。

1 个答案:

答案 0 :(得分:0)

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

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

问题似乎仅限于具有Firebase 5.0的Gatsby v1。+

由于预gyp和节点版本冲突,因此无法回滚到较旧的Firebase版本。

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