2012-08-24 11 views
5

私はrequirejsの依存関係について私の頭を包んでいます。RequireJSの依存関係について混乱しています

  1. すでにshimを使用してファイルの依存関係を宣言している場合は、そのファイルでモジュールを定義するときに再宣言する必要がありますか?
  2. requireを使用してバックボーンなどの依存関係をロードする場合、requireの一部としてロードされたモジュールを定義するときに再宣言する必要がありますか?

ここに私のコードは、これまでのところです:

require.config({ 
    //alias 
    paths: { 
     Backbone: 'libs/backbone-min', 
     Config: 'config', 
     Dom: 'dom', 
     App: 'app' 
    }, 

    //dependencies 
    shim: { 
     'Backbone': ['libs/underscore-min'], 
     'Dom': ['libs/sizzle'] 
    } 
}); 

//used to load and use stuff 
require(['Config','Dom','App','Backbone'], function(){ 

}); 

のでdom.jsに、私はちょうどdefine(function(){...});を使用してモジュールを定義し、シズルを使用して起動することができますか?それとも私はまだ私がapp.jsでモジュールを定義する場合、私はすでにrequire()の一部として含まので、また、私はまだ、defineにバックボーンをロードする必要があります。このdefine(['libs/sizzle'], function(){...});

のように、それを定義する必要があります。

答えて

1

1)既にshimを使用してファイルの依存関係を宣言している場合は、そのファイルにモジュールを定義するときに、 を再宣言する必要がありますか?

すべてのモジュールについて、定義する必要があるのは依存関係のセットです。

2)私は、このようなバックボーンとしての依存関係をロードする必要が使用している場合は、私は私が必要と の一部としてロードされるモジュールを定義するときにそれを再宣言する が必要なのでしょうか?

あなたはarbitary modyleに依存関係としてのバックボーンを使用したい場合は、

define(['backbone'], function(Backbone) { .. } 
+0

を書くことができそう基本的には) 'Shim'は、単に特定の順序でファイルをロードし、'(必要 'ファイルをロードしてみませんかモジュールとやりとりしない –

+5

Shimが実際に行うことの最も良い答えは、RequireJSの作成者James Burkeです。次のURLでそのメッセージを読むことができます:https://groups.google.com/d/msg/requirejs/-han0L_Sv_E/iFttMxDkT1UJ – svlada

関連する問題