1

我正在尝试构建使用 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 。

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

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

提前致谢 !

4

1 回答 1

3

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

从示例r.js 构建文件

将使用在该文件中找到的第一个 requirejs({})、require({})、requirejs.config({}) 或 require.config({}) 调用。

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

于 2013-08-11T17:33:21.437 回答