0

RequireJS を使用して、他の人の Web サイトで使用する JavaScript SDK を作成しています。私の RequireJS ビルド構成は、名前空間「myNamespace」を使用して、他の人の Web サイトに干渉することなく、私の SDK を独自のバージョンの RequireJS にバンドルできるようにします。これは期待どおりに機能しますが、別の RequireJS モジュールから SDK モジュールを要求しようとしたときに問題が発生しました。

myNamespace.define('public1', function (require) {
    var public2 = require('public2');

    return { x: 1, y: public2.y };
});

myNamespace.define('public2', function (require) {
    return { y: 1 };
});

define(function (require) {
    var private1 = require('private1');
    var private2 = require('private2');
    var public1 = myNamespace.require('public1'); // This doesn't work as it isn't using the provided `require` method.
});

2 つの RequireJS ライブラリを「混合」する方法はありますか? RequireJS 名前空間の詳細については、http://requirejs.org/docs/faq-advanced.html#rename を参照してください

4

1 に答える 1

0

それで、私は解決策を考え出しました。これをもっと賢くできると思うかどうか教えてください。ラッパーとして機能するプラグインを作成しました。

define(['https://example.com/mySDK.js'], {
    load: function (name, req, onload, config) {
        myNamespace.require([name], onload);
    }
});
于 2013-03-11T20:20:37.697 に答える