R.js build不遵循require.config文件

时间:2013-08-11 16:41:58

标签: backbone.js build requirejs marionette r.js

我正在尝试构建使用Require.js,AMD样式模块的单页应用程序。

我已经在先运行的init.js文件中配置了所有依赖项,路径和填充程序,然后调用了我的main.js文件。

这是我的init.js文件:

(function() {
    'use strict';
    var me = this;
    me.require.config({

        deps: ['backbone.marionette', 'main'],

        shim: {
            jquery: {
                exports: 'jQuery'
            },
            underscore: {
                exports: '_'
            },
            backbone: {
                deps: [
                    'underscore',
                    'jquery'
                ],
                exports: 'Backbone'
            },
            'backbone.marionette': {
                deps: ['jquery', 'underscore', 'backbone'],
                exports: 'Marionette'
            }
        },

        paths: {
            jquery: '../lib/jquery/dist/jquery.min',
            html5shiv: '../lib/html5shiv/html5shiv.js',
            underscore: '../lib/underscore/underscore-min',
            backbone: '../lib/backbone/backbone',
            'backbone.marionette': '../lib/backbone.marionette/lib/core/amd/backbone.marionette.min',
            'backbone.wreqr': '../lib/backbone.wreqr/lib/amd/backbone.wreqr.min',
            'backbone.babysitter': '../lib/backbone.babysitter/lib/amd/backbone.babysitter.min',
            text: '../lib/requirejs-text/text'
        }

    });
}).call(this);

这是我的r.js构建配置文件:

({
    baseUrl: '../../development/js',
    optimize: 'closure',
    paths: {
        requireLib: '../lib/requirejs/require'
    },
    mainConfigFile: '../../development/js/init.js',
    out: '../../distribution/main-build.js',
    include: ['requireLib']
})

当我构建时,我只在我的main-build.js文件中内联Require.js。

由于某种原因,R.js不遵循require.config中定义的deps属性。

  • 关于如何获取包含我的Backbone.js / Marionette.js文件的单个文件以及require.config文件中init.js中描述的依赖关系的任何想法?

提前致谢!

1 个答案:

答案 0 :(得分:3)

我想知道这是否是您定义配置的方式。 init.js是否有任何理由而不是仅将require.config置于主?似乎没有必要创建一个匿名函数来封装它。

来自示例r.js build file

  

第一个requirejs({}),require({}),requirejs.config({})或   

将使用该文件中的require.config({})调用

对我来说一直有用的是遵循更标准的方法来调用require.config() inside main.js