requirejs.noConflict()
ライブラリからグローバルフットプリントを削除する、または何らかの方法を探しています。私の使用例は、既に定義されている可能性のあるサードパーティのページで実行するウィジェットを作成していることですrequire
( define
requirejs の以前のバージョンまたは完全に別のライブラリを使用して)。
私はこれを自分で実装しようとしましたが、ほとんどうまくいきます。簡単にするために、元の値を復元せず、フットプリントのみを削除すると仮定します。私は自分のデータメインで次のようなことをします:
var mycontext = requirejs.config({context : 'asdf', baseUrl : 'http://foo.com' });
mycontext(['require','foo'], function (require, foo) {
var f = require('foo');
});
// namespace cleanup
window.requirejs = undefined;
window.require = undefined;
window.define = undefined;
ここでの問題は、f
からの値require('foo')
が null を返すことですが、名前空間のクリーンアップを行った場合のみです。これはrequirejsのバグのようなにおいがしますが、競合しない公式の解決策があることを願っています.
すべての jQuery 関連の noConflict() の質問のため、これをグーグルで検索するのは困難です。