0

私は RequireJS を使用して、すべての JavaScript を AMD モジュールとしてロードしています。具体的には、「shim」構成を使用して AMD 以外のモジュールをロードしています。

しかし、MixPanel を読み込もうとすると、「未定義」のオブジェクトが表示されます。

関連するファイルは次のとおりです。比較のために、正常にシム処理された Stripe js を使用します。

main.js:

require.config({
    paths: {
        stripe: 'libs/stripe/stripe',
        mp: 'libs/mixpanel/mixpanel'
    },
    shim: {
        'stripe': {
            exports: 'Stripe'
        },
        'mp': {
            exports: 'MP'
        }
    }
 });

libs/stripe/stripe.jsドキュメントが推奨するように、libs/mixpanel/mixpanel.js両方とも(function () {})();呼び出しがあります。

my payment.js (Stripe をラップ):

define(['jquery', 'stripe'], function ($, Stripe) {
    var key = "MY_KEY";
    Stripe.setPublishableKey(key);
});

my track.js (MixPanel をラップします):

define(['jquery', 'mp'], function ($, MP) {
    var token = "MY_TOKEN";
    MP.init(token);
});
4

2 に答える 2

0

私はシムに精通していませんが、持っているべきだと思われます

'mp': {
    exports: 'mixpanel'
}

Mixpanel ライブラリはそれを公開しているため、window.MP.

于 2013-02-28T22:38:48.417 に答える