如何在Browserify中使用Firebase Backfire?

时间:2015-01-23 19:20:24

标签: javascript firebase browserify backfire backbonefire

我尝试使用Firebase的Backfire(针对Backbone)与Browserify / Gulp建立项目,但遇到了问题。我做了npm install firebasenpm install backfire,然后在Models.js模块中我尝试了..

// ...
var Firebase = require('firebase'),
    Backfire = require('backfire');

module.exports = {
    // ...
    ItemsCollection: Backbone.Firebase.Collection.extend({
      model: ItemModel,
      firebase: new Firebase(FIREBASE_URL + 'items')
    })
  };

不幸的是,Backbone.Firebase'中的Firebase属性。错误显示为未定义..

我找到了一些关于npm" shim"叫做#34; client-backfire"但是,它似乎未被发布/弃用。任何想法如何让它工作?

1 个答案:

答案 0 :(得分:1)

David @ Google收到官方确认,CommonJS支持即将推出。与此同时,我的解决方法如下:

<强>的index.html

<script src="js/libs/underscore.js"></script>
<script src="js/libs/backbone.js"></script>
<script src="js/libs/firebase.js"></script>
<script src="js/libs/backbonefire.js"></script>

<script src="js/bundle.js"></script>  <!-- browserify bundle -->

app.js (应用的入口点)

  var $           = require('jquery');
  // var _        = require('underscore');
  // var Backbone = require('backbone');
  // var Firebase = require('firebase');
  // var Backfire = require('backfire');
  Backbone.$ = $;

  $(document).ready(function() {
    var Router = require('./router.js'),
        router = new Router();
    Backbone.history.start();
  });

一旦添加了CommonJS支持,我想我应该能够简单地删除所有脚本标签(bundle.js除外),根据需要取消注释每个模块的需要语句(这里不需要Firebase和Backbonefire),并删除$(document).ready()等待函数..