3

假设我处于以下情况。

我需要使用
backbonewhich requires和underscorewhich requires , jquery
and
backbone.marionettebackboneunderscorejquery

我应该写这个代码(1)还是下面的(2)


(1)

    shim: {
        backbone: {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
        marionette: {
            deps: ['backbone', 'underscore', 'jquery'],
            exports: 'marionette'
        },
    }

(2)

    shim: {
        backbone: {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
        marionette: {
            deps: ['backbone'],
            exports: 'marionette'
        },
    }
4

1 回答 1

2

您不需要在 marionette 的依赖项中包含下划线和 jquery,因为它们已经为 Backbone 加载。对 (2) 的一些更正:

  1. 您应该填充下划线并导出“_”,因为它应该位于全局命名空间中。
  2. Marionette 是一个 Backbone 插件,因此您无需导出任何内容,也可以导出“Backbone.Marionette”(请参阅​​ http://requirejs.org/docs/api.html#config-shim

我会这样做:

shim: {
    underscore: {
        exports: '_'
    },
    backbone: {
        deps: ['underscore', 'jquery'],
        exports: 'Backbone'
    },
    marionette: {
        deps: ['backbone'],
        exports: 'Backbone.Marionette'
}
于 2012-09-25T15:26:41.597 回答