我尝试使用Firebase的Backfire(针对Backbone)与Browserify / Gulp建立项目,但遇到了问题。我做了npm install firebase
和npm 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"但是,它似乎未被发布/弃用。任何想法如何让它工作?
答案 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()等待函数..