きちんとラップされた JS ライブラリがあるとします。define('myModule', function(myModule) { return myModule.someObject; });
myModule.someObject
requirejs やその他のモジュール処理フレームワークを使用せずに、グローバル スコープにバインドするにはどうすればよいですか (理由は聞かないでください。モジュラー プログラミングには、グローバル スコープに何かを配置するよりも多くの利点があります)。
問題は、開発中にrequirejsを使いたいということです。私たちが構築するライブラリは、requirejs (AMD、CommonJS など) を使用する人が含めることができる必要がありますが、window.SomeObject
require を使用したくない人でも、私たちのライブラリを使用できるようにするためだけに使用できるようにする必要があります。SomeObject
. 開発段階の後、すべてのコードは縮小され、1 つの JS ファイルに難読化されます。
私が見つけることができるのは、requirejsフレンドリーdefine
関数にラップされていないコードを含める方法という質問に対する答えだけなので、間違った検索用語でグーグル検索しているだけだと思います。
これに関するアイデアは大歓迎です。ありがとう!
- - 編集 - -
私のファイル(すべてが始まる前)は次のようになりました:
(function(define, global) {
define([a,b,c],function(theA, theB, theC) {
return theA + theB + theC; // or something, it doesn't matter
});
})(define, this);
私はこのようなことを考えています:
(function(define, global) {
// same as above
})(typeof define === 'function'
? define
: function(factory /* need more args? */) { /* solution here */ }, this);
しかし、それを適切に実装する方法がわかりません...