Backbone.js无法使用Require.js包

时间:2015-04-13 21:30:34

标签: javascript jquery backbone.js requirejs

我无法让Backbone.js与require.js'捆绑系统。

这有效:

requirejs.config({
    baseUrl: 'assets/',
    bundles: {
        corejs: ['jquery', 'underscore']
    },
    paths: {
        corejs: '../core',
        jquery: '../static/js/jquery',
        backbone: '../static/js/backbone',
        underscore: '../static/js/underscore',
        knockout: '../static/js/knockout',
        knockback: '../static/js/knockback'
    },
    shim: {
        backbone: {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        }
    },
    deps: ['corejs']
});

require(['app/app'], function(App) {
    App.initialize();
});

bundles更改为

bundles: {
    corejs: ['jquery', 'underscore', 'backbone']
}

会导致require.js超时

core.js目前包含连接的jQuery,Underscore,Backbone

Backbone在浏览器控制台上可用,甚至在超时之前。

1 个答案:

答案 0 :(得分:0)

正如@ivarni在评论中提到的,Backboone已经添加了CommonJS支持:

// Next for Node.js or CommonJS. jQuery may not be needed as a module.
} else if (typeof exports !== 'undefined') {
    var _ = require('underscore'), $;
    try { $ = require('jquery'); } catch(e) {}
    factory(root, exports, _, $);

这意味着如果你使用最新版本的Backbone,你可以正常require而不必创建一个垫片。