我完全被困住了。
通过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"
},
一段时间以来,项目在某些旧版本的库上运行良好。
答案 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