我无法让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在浏览器控制台上可用,甚至在超时之前。
答案 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
而不必创建一个垫片。