requireJS でモジュールを作成するには、名前を付けます。
define("name",[dep],function(dep) {
// module definition
});
または、名前を除いたものを作成することもできます。
define([dep],function(dep) {
// module definition
});
モジュールを作成するより良い方法はどれですか? RequireJS ではモジュール名の割り当てを避けることを推奨していることは知っています。
しかし、どのようなシナリオでモジュールに名前を付ける必要があるのか、また、どのようなシナリオでモジュールに名前を付ける必要がないのかを知りたいです。これは使用方法に影響しますか? それぞれの方法の長所と短所は何ですか?
ベストアンサー1
これはrequirejsがドキュメンテーション名前付きモジュールについては次のように述べています。
これらは通常、最適化ツールによって生成されます。モジュールに明示的に名前を付けることもできますが、モジュールの移植性が低下します。ファイルを別のディレクトリに移動する場合は、名前を変更する必要があります。通常は、モジュールの名前をコーディングせずに、最適化ツールにモジュール名を組み込ませるのが最善です。最適化ツールは、複数のモジュールをファイルにバンドルしてブラウザーでの読み込みを高速化できるように、名前を追加する必要があります。
しかし、あなたが欲しいモジュールに単一のよく知られた名前を持たせることで、他のどのモジュールからも常に同じ方法で要求できるようになります。define
名前付きの呼び出しを使用する必要があるでしょうか? まったく必要ありません。paths
設定では:
paths: {
'jquery': 'external/jquery-1.9.1',
'bootstrap': 'external/bootstrap/js/bootstrap.min',
'log4javascript': 'external/log4javascript',
'jquery.bootstrap-growl': 'external/jquery.bootstrap-growl',
'font-awesome': 'external/font-awesome'
},
"jquery"
この設定では、jQueryは、Twitter Bootstrapはなどとして要求できます"bootstrap"
。ベストプラクティスは、define
名前による呼び出しをオプティマイザ。