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。
我完全卡住了。
使用 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。