我的应用程序一直运行良好,但今天我决定给r.js一个漩涡。
现在我的树(它的一部分)看起来像
在我的index.html文件中
<script data-main="assets/js/main" src="assets/js/require.js"></script>
这是main.js
require.config({
paths: {
jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
underscore: 'components/underscore/underscore-min',
backbone: 'components/backbone/backbone-min',
jqueryui: 'components/jqueryui/jquery-ui-1.10.1.custom.min'
},
shim: {
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
'jqueryui': ['jquery']
}
});
require(['views/app'], function(App) {
var router = Backbone.Router.extend({
routes: {
'': 'root',
'year(/:year)': 'year'
},
root: function() {
new App();
},
year: function(year) {
new App({
year: year
});
}
});
r = new router();
Backbone.history.start({
// pushState: true
});
});
在我的模块中,我引用了我的文件,例如assets/js/views/election.js
或assets/js/models/election.js
但是当我用这个build.js运行r.js
时({
// baseUrl: "assets/",
paths: {
jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
underscore: 'components/underscore/underscore-min',
backbone: "components/backbone/backbone-min",
jqueryui: 'components/jqueryui/jquery-ui-1.10.1.custom.min'
},
name: "main",
out: "main-built.js"
})
我得到Error: ENOENT, no such file or directory '/Users/alex/Dropbox/www/animated-elections/assets/js/assets/js/collections/elections.js'
。我明白这意味着为什么它会为我的路径添加另一个assets/js
。
答案 0 :(得分:0)
我相信require.js
应该与主文件位于同一个文件夹中,即。 <{1}}文件夹旁边而不是里面的文件。
答案 1 :(得分:0)
r.js位于您的app目录中,而不是example setup中指定的兄弟姐妹。
我还没有对此进行测试,但r.js可能假设任何模块调用都应该与它所在的位置相关。
答案 2 :(得分:0)
在build.js文件中添加此代码。
baseUrl: ".",
paths: {
jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
underscore: 'components/underscore/underscore-min',
backbone: "components/backbone/backbone-min",
jqueryui: 'components/jqueryui/jquery-ui-1.10.1.custom.min',
'views/app': 'empty:',
'views/election': 'empty:',
//and so with others
},
name: "main",
out: "main-built.js"
问候.-