グローバル空間にグローバル オブジェクトを 1 つだけ追加する JavaScript ライブラリを作成しました。
グローバルオブジェクトはたまたま関数であり、関数の名前はファイルの名前と一致します。
これはどのように見えるかです:
ファイル名: myfunction.js
コード:
myfunction = function() {
...
};
ライブラリを amd および require.js に準拠させるにはどうすればよいですか?
グローバル空間にグローバル オブジェクトを 1 つだけ追加する JavaScript ライブラリを作成しました。
グローバルオブジェクトはたまたま関数であり、関数の名前はファイルの名前と一致します。
これはどのように見えるかです:
ファイル名: myfunction.js
コード:
myfunction = function() {
...
};
ライブラリを amd および require.js に準拠させるにはどうすればよいですか?
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 () {
/* ... */
}
}));