【问题标题】:webpack import firebase not workingwebpack导入firebase不起作用
【发布时间】:2016-05-20 02:45:47
【问题描述】:

我在让 firebase 3.0.1 工作时遇到问题。我感觉这与我的 webpack 设置有关。我的文件在下面。使用 webpack 开发服务器运行我的应用程序时出现错误:

未捕获的类型错误:firebase.initializeApp 不是函数

有趣的是,如果我在var firebase = require('firebase'); 之后放置一个debugger; 或断点,它似乎是一个空对象。

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 <james@burn.today>",
  "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);

【问题讨论】:

    标签: npm firebase webpack


    【解决方案1】:

    我有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');
    

    在我看来,当前的初始化代码有问题,查看它应该可以工作的源代码;但话又说回来,有点像你,我正在使用 browserify,并且没有在它之外进行测试,所以它可能是相关的。

    【讨论】:

    • 你知道的。我确实看到 firebase 在文档中有这个选项。但它看起来很愚蠢,我什至没有尝试过。感谢您及时的回复;非常感谢。
    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2019-11-02
    • 2018-01-06
    相关资源
    最近更新 更多