Firebase does not work with Node and Webpack - cannot read property "navigator" undefined

I get the following error:

/Users/.../express/server/bundle.js:296
        License: https://www.firebase.com/terms/terms-of-service.html */(function(){var h,n=this;function p(a){return void 0!==a;}function aa(){}function ba(a){a.wb=function(){return a.wf?a.wf:a.wf=new a();};}function ca(a){var b=typeof a==="undefined"?"undefined":_typeof(a);if("object"==b){if(a){if(a instanceof Array)return "array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return "object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return "array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return "function";}else return "null";}else if("function"==b&&"undefined"==typeof a.call)return "object";return b;}function da(a){return "array"==ca(a);}function ea(a){var b=ca(a);r

TypeError: Cannot read property 'navigator' of undefined
    at /Users/.../server/bundle.js:296:4904
    at Object.<anonymous> (/Users/.../server/bundle.js:296:143270)
    at __webpack_require__ (/Users/.../server/bundle.js:20:30)
    at Object._typeof (/Users/.../server/bundle.js:239:18)
    at __webpack_require__ (/Users/.../server/bundle.js:20:30)
    at Object.i (/Users/.../server/bundle.js:52:14)
    at __webpack_require__ (/Users/.../server/bundle.js:20:30)
    at /Users/.../server/bundle.js:40:18
    at Object.<anonymous> (/Users/.../server/bundle.js:43:10)
    at Module._compile (module.js:435:26)

This is my webpack configuration:

var webpack = require('webpack');

module.exports = {
  entry: './server/entry.js',
  output: {
    filename: './server/bundle.js'
  },
  target: "node",
  devtool: 'source-map',
  resolve: {
    extensions: ['', '.webpack.js', '.js', '.json'],
    modulesDirectories: [
      'node_modules'
    ]
  },
  module: {
    loaders: [
      { 
        test: /\.json$/,
        exclude: '/node_modules/', 
        loader: "json-loader" 
      },
      { 
        test: /\.js$/, 
        exclude: '/node_modules/', 
        loader: 'babel-loader',
        query: {
          presets: ['es2015']
        }
      }
    ]
  }
};

This error is displayed when running "node app.js". I am trying to run this code using the Node and Express for Rest APIs, so it loads in Node.js, not the browser.

+4
source share
1 answer

The problem you are facing is that by default webpack uses the version of Firebase browser specified in the firebase package package.json, and not in the "main" version (which is for node.js). The browser version will not work.

webpack, , - :

"resolve": {
    "packageMains": [ "main", "webpack", "browser", "web", "browserify", ["jam", "main"]]
}

( , "main" )

+3

Source: https://habr.com/ru/post/1629731/


All Articles