2

我在尝试使用 RequireJS、BackboneJS 和各种 over 库编写的 Phonegap 应用程序在使用 r.js 后工作时遇到了一些问题。

在优化之前一切正常,但是之后我在 main-build.js 中收到以下错误

未捕获的类型错误:无法读取属性“视图”

下面是我的要求配置

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'})

有什么明显的吗?

感谢您的时间。

4

1 回答 1

1

shim-config 应该在build.js文件中复制,因此r.js可以正确地将 shim 依赖项包含到app/main-build.js. 您可以简单地复制您的 shimbuild.js或更好地指定mainConfigFile选项,因此您的pathsshim只能在一个地方列出。

于 2013-03-16T23:34:37.937 回答