4

グローバル空間にグローバル オブジェクトを 1 つだけ追加する JavaScript ライブラリを作成しました。

グローバルオブジェクトはたまたま関数であり、関数の名前はファイルの名前と一致します。

これはどのように見えるかです:

ファイル名: myfunction.js

コード:

myfunction = function() {
   ...
};

ライブラリを amd および require.js に準拠させるにはどうすればよいですか?

4

2 に答える 2

10

Requirejs のドキュメントでは、AMD 準拠のモジュールを作成する方法について説明しています。ただし、AMD (タグ) なしで使用した場合にモジュールを動作させ続ける方法に関する情報は、<script>そこで見つけるのは困難です。とにかく、Requirejs コンテキストでは、「define」メソッドが定義されます。それ以外の場合、以下の例では window.x (最も洗練されたソリューションではありません) を使用して、関数をクロージャー内からグローバル空間に公開しています。

(function (module) {
    if (typeof define === "function" && define.amd) {
        define(function () { return module; });
    } else {
        window.myfunction = module.myfunction;
    }
}({
    myfunction: function () {
        /* ... */
    }
}));

参照: https://stackoverflow.com/a/14033636

于 2013-07-08T11:24:52.370 に答える