2

アプリケーションがグローバルシングルトンを提供するやや特殊なJS環境でrequirejsを使用しています(この事実を変更することはできません。これは通常のブラウザー環境では実行されていません)。このアプリケーション用に一種のJSSDKを作成しており、このグローバルを使用するさまざまなモジュールを提供したいと考えています。

モジュールから要求するために、そのグローバルを何らかの方法でモジュールにラップできますか?何かのようなもの

define([the_global_application], function(app)

これについて考えてくれてありがとう。

4

1 に答える 1

1

はい、定義する必要があります。

// mysingletonapp.js
// define the module for our global var
define(['list', 'any', 'dependency', 'here'], function (l, a, d, h) {
  return yourGlobalVariable;
});

(グローバルをラップしているだけなので、そこに依存関係があるとは思いませんvar

そのモジュールは通常どおり使用できます。

require(['mysingletonapp'], function (app) {
  // do something cool
});

これをすべてスキップしたい場合はshim、RequireJSのプロパティを使用できます。これをオプションファイルに追加する必要があります。

...
shim: {
        'globalApplication': {
            deps: ['underscore', 'jquery'], // again, you should not need them
            exports: 'yourGlobalVar'
        }
}
...

shim■AMDをサポートしていないライブラリをラップするため、この設定を機能させるには、のjsが必要になりますglobalApplication。これはあなたの場合ではありません。

于 2013-03-26T08:07:41.307 に答える