SystemJS和Firebase

时间:2016-12-15 15:39:20

标签: firebase systemjs

我尝试将Firebase与Angular 2,SystemJS和Typescript一起使用。我有以下文件层次结构:

_ www
|_ app
 |_ etc...
|_ lib
 |_ @angular
 |_ firebase
  |_ app.js
  |_ auth.js
  |_ firebase.js
  |_ firebase-auth.js
  |_ etc...
 |_ rxjs
 |_ etc...
 |_ index.html
 |_ systemjs.config.js

当我想使用Firebase时,我会在我的打字稿源中导入Firebase,如下所示:

import * as firebase from 'firebase';

要加载Firebase模块,请在systemjs.config.js中添加以下index.html脚本:

(function (global) {
    System.config({
        paths: {
            "lib:": 'lib/'
        },
        map: {
            // angular & rxjs refs go here...
            'firebase': 'lib:firebase'
        },
        packages: {
            // other package references go here...
            firebase: {
                main: 'firebase.js',
                defaultExtension: 'js'
            }
        }
    });
})(this);

但是,任何使用firebase.js中定义的任何函数(例如firebase.initializeApp)的尝试都会给出一个异常,告诉我该函数不是函数(例如firebase.initializeApp is not a function)。< / p>

如果我将main中Firebase的systemjs.config.js引用从firebase.js更改为app.js,那么我可以使用firebase.initializeApp函数而不会出现任何错误

app.jsfirebase.js的仔细检查表明它们的构造略有不同(我不是js专家),即app.js

var firebase = (function(){
var firebase = null; (function()...
// more js here
... return firebase;}).call(global);
module.exports = firebase;

firebase.js

var firebase = null; (function() {...
// more js here
... ();}).call(this);

那么为什么app.js有效,firbase.js不起作用?我需要做些什么才能让firebase.js工作?

0 个答案:

没有答案