2016-05-20 2 views
10

У меня возникла проблема с запуском firebase 3.0.1. У меня есть ощущение, что это касается моей настройки веб-пакета. Мои файлы ниже. При запуске мое приложение с WebPack Dev сервера я получаю ошибку:webpack import firebase не работает

Uncaught TypeError: firebase.initializeApp is not a function

Интересно то, что если я ставлю debugger; или контрольную точку после того, как var firebase = require('firebase'); это кажется пустой объект.

webpack.config.js

const webpack = require("webpack"); 

module.exports = { 
    entry: './src/index.js', 
    output: { 
     path: 'public', 
     filename: 'bundle.js' 
    }, 
    module: { 
     loaders: [{ 
      test: /\.js$/, 
      exclude: /node_modules/, 
      loader: 'babel-loader?presets[]=es2015&presets[]=react' 
     }] 
    }, 
    plugins: process.env.NODE_ENV === 'production' ? [ 
     new webpack.optimize.DedupePlugin(), 
     new webpack.optimize.OccurrenceOrderPlugin(), 
     new webpack.optimize.UglifyJsPlugin() 
    ] : [] 
}; 

package.json

{ 
    "name": "burn", 
    "version": "1.0.0", 
    "description": "burn messaging", 
    "main": "index.js", 
    "scripts": { 
    "start": "if-env NODE_ENV=production && npm run start:prod || npm run start:dev", 
    "start:dev": "webpack-dev-server --inline --content-base public --history-api-fallback", 
    "start:prod": "webpack && firebase deploy" 
    }, 
    "author": "James Gilchrist <[email protected]>", 
    "license": "ISC", 
    "dependencies": { 
    "compression": "^1.6.2", 
    "express": "^4.13.4", 
    "firebase": "^3.0.1", 
    "if-env": "^1.0.0", 
    "react": "^15.0.2", 
    "react-dom": "^15.0.2", 
    "react-router": "^2.4.0" 
    }, 
    "devDependencies": { 
    "babel-core": "^6.9.0", 
    "babel-loader": "^6.2.4", 
    "babel-preset-es2015": "^6.9.0", 
    "babel-preset-react": "^6.5.0", 
    "webpack": "^1.13.0", 
    "webpack-dev-server": "^1.14.1" 
    } 
} 

index.js

var firebase = require('firebase'); 

var config = { 
    apiKey: "AIzaSyA9gUmSBu4SZ4P9H_4lXuN1ouD_GBKq3aw", 
    authDomain: "burn-56840.firebaseapp.com", 
    databaseURL: "https://burn-56840.firebaseio.com", 
    storageBucket: "burn-56840.appspot.com" 
}; 
firebase.initializeApp(config); 

ответ

20

я имел same problem, есть простое решение проблемы, хотя:

var firebase = require('firebase/app'); 

Таким образом, вы получаете «реальный» firebase модуль. Однако теперь вы должны требовать, чтобы каждый модуль, который вы должны будете так нагружает правильно, вот так:

var firebase = require('firebase/app'); 
// all 3 are optional and you only need to require them at the start 
require('firebase/auth'); 
require('firebase/database'); 
require('firebase/storage'); 

Мне кажется, что что-то не так с текущим кодом инициализации, глядя на источник, он должен работать; но опять же, как и вы, я пользуюсь браузером и не тестировал его, поэтому он может быть связан.

+1

Вы знаете. Я видел, что у этой базы есть эта опция в документации. Но это казалось таким глупым, что я даже не пробовал. Спасибо за быстрый ответ; очень признателен. –

Смежные вопросы