3

私が次の文脈にいるとしましょう。


backbonewhich requiresunderscoreおよびwhich requiresを使用する必要がjquery
あります。
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

マリオネットの依存関係にアンダースコアと 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 に答える