私が実際に行っていることを例として使用します。もちろんjQueryに依存するjQuery UIに依存するjqueryプラグインに依存するノックアウトカスタムバインディングがあります。別のプラグインに依存する別のファイルと、jQuery UI などに依存する別のファイルがあります。require.config.js には次のものがあります。
shim: {
"jquery-ui": {exports: "$", deps: ["jquery"]},
"jquery-plugin1": {exports: "$", deps: ["jquery-ui"]},
"jquery-plugin2": {exports: "$", deps: ["jquery-ui"]}
}
これは機能し、対応するファイルで次のことができます。
define(["jquery-plugin1"], function ($) {
ただし、次のこともできます。
define(["jquery", "jquery-ui", "jquery-plugin1"], function ($) {
ファイルが両方のプラグインに依存する場合もあります。
// which one?
define(["jquery-plugin1", "jquery-plugin2"], function ($) {
define(["jquery", "jquery-ui", "jquery-plugin1", "jquery-plugin2"], function ($){
ノックアウト カスタム バインディング (何もエクスポートする必要がない) などの他の依存関係もある可能性があるため、次のようになる可能性があります。
define(["jquery-plugin1", "model1", "model2",
"ko-custom1", "ko-custom2", "ko-custom3",
"jquery-plugin2"],
function ($, m1, m2) {
このファイルは jQuery UI (jQuery に依存) にも依存する場合がありますが、どちらもプラグインを介して暗黙的に読み込まれます。
私の質問は、すべての要件を明示し (つまり、jQuery と jQuery-UI を に含めるdefine
)、エクスポートを省略した方がよいのでしょうか、それともあまり詳細でないネストされた依存関係の処理が優先されるのでしょうか?