我在尝试使用RequireJS,BackboneJS和各种库来编写我的Phonegap应用程序时遇到了一些问题。使用r.js之后。
在优化之前一切正常但是之后我在main-build.js中遇到以下错误
未捕获的TypeError:无法读取属性“查看”
以下是我的require config
require.config({
baseUrl: 'lib',
paths: {
domReady : 'require/domReady',
text : 'require/text',
async : 'require/async',
jquery : 'jquery/jquery',
jqmconfig : 'jqm/jqm-config',
jqm : 'jqm/jquery.mobile',
underscore : 'underscore/underscore',
backbone : 'backbone/backbone',
jqmaps : 'google/jquery.ui.map',
router : '../app/router',
models : '../app/models',
collections : '../app/collections',
views : '../app/views',
templates : '../app/templates',
app : '../app/app'
},
shim: {
underscore: {
exports : '_'
},
backbone: {
deps : ['jquery', 'jqmconfig', 'jqm', 'underscore'],
exports : 'Backbone'
},
jqmconfig : ['jquery'],
jqm : ['jquery','jqmconfig'],
jqmaps : ['jqm']
}});
这是我的引导程序
require(
[
'app', 'domReady', 'jqmconfig'
],
function(app, domReady){
domReady(function() {
// On device ready initialize the app code
});
});
这是我的build.js
({
baseUrl: 'lib',
paths: {
domReady : 'require/domReady',
text : 'require/text',
async : 'require/async',
jquery : 'jquery/jquery',
jqmconfig : 'jqm/jqm-config',
jqm : 'jqm/jquery.mobile',
underscore : 'underscore/underscore',
backbone : 'backbone/backbone',
jqmaps : 'google/jquery.ui.map',
router : '../app/router',
models : '../app/models',
collections : '../app/collections',
views : '../app/views',
templates : '../app/templates',
app : '../app/app',
main : '../app/main',
},
name: 'main',
out: 'app/main-build.js'})
有什么明显的东西吗?
感谢您的时间。
答案 0 :(得分:1)
shim-config应该在build.js
文件中公开,因此r.js
可以将填充程序依赖项正确地包含在app/main-build.js
中。您只需在build.js
中复制您的垫片,或者更好地指定mainConfigFile选项,这样您的paths
和shim
只能在一个地方列出。