質問

この時点で、私はRequirejsに少しイライラしています。

app.coffeeファイルにjqueryやその他のライブラリをロードしようとしています。問題は、定義にモジュールの依存関係をロードできないことです。入力引数の一部(JQ、JSNなど)は、NULLまたはHTMLDocumentオブジェクトです。これは、「注文」、「domready」、またはなしで試してみるプラグインの順列に基づいて変更されます。

私のJS libディレクトリはa)のように見えます。そして、私のapp.coffeeファイルはbのように見えます。 require.configで「パス」を使用しようとしました。 requirejs-jqueryの統合を知っています。しかし、私ができるべきではありません プラグインの読み込みを注文します?

「パス」という名前の名前を試してみると、別のエラーセットが表示されます。誰かが見えます 提案されたjQuery 1.7 (ここもまた)。これは稼働していますか?私は最初に一歩下がって、コンセプトが正しくダウンしていることを確認したかったのです。 i)require.config ii)依存関係付きモジュール定義、iii)注文プラグインなど。

これらの概念が正しくダウンしている場合、それはjQueryバージョンの問題だと思います。ただし、依存関係としてのjQueryだけではありません。そして、この方法で時間を失うことは信じられないほど厄介です。どんな助けも感謝しています。前もって感謝します。

a)

    $ tree js/lib/
    js/lib/
    ├── backbone.js
    ├── backbone_loader.js
    ├── domReady.js
    ├── jquery-1.6.3.js
    ├── json2.js
    ├── order.js
    ├── pure.js
    ├── require.js
    └── underscore.js

b)

    require.config({
      baseUrl: "/js",
      paths:
        order : '/js/lib/order'
        jQuery : '/js/lib/jquery-1.6.3'
        json2 : '/js/lib/json2'
        Underscore : '/js/lib/underscore'
        Backbone : '/js/lib/backbone_loader'
        pure : '/js/lib/pure'
    })


    define( [ 'js/lib/order!js/lib/jquery-1.6.3',
              'js/lib/order!js/lib/json2',
              'js/lib/order!js/lib/underscore',
              'js/lib/order!js/lib/backbone',
              'js/lib/order!js/lib/pure',
              'js/lib/order!js/bkeeping/models', ]
      (jq, jsn, und, bbn, pur, models) ->

        console.log('bkeeping LOADED')

        # return an object with the models in it  
        models : models
        jQuery : jq.noConflict()
        json2 : jsn 
        Underscore : und.noConflict()
        Backbone : bbn.noConflict()
        pure : pure
    )

役に立ちましたか?

解決 2

これについての指示をありがとう。

しかし、私はjquery-1.7に行きましたが、オブジェクトを取得するためにグローバルスペースから引き出さなければなりませんでした。それは今のところ私の他のLibとそれらの依存関係に当てはまります。私がやったことは、依存関係のあるオブジェクトを返すことでした。ライブラリの読み込みが完了しました プラグインを注文します.

コールバック関数(JQ、PUR、JSNなど)に渡される依存関係オブジェクトの契約は、これらのライブラリで機能していません。それは私の定義されたモジュール(例:モデル)で動作しますが、外部LIBでは機能しません。私は試しました プラグインを使用します, 、しかし、それはアンダースコアとバックボーンでは機能しないことがわかりました、または私はそれを適切にセットアップしませんでした。これは今のところ私の実行可能なソリューションです。頭痛はrequire.jsの利点を真剣に曇らせていると言わざるを得ませんが。

    define( [ 'order!js/lib/jquery-1.7',
              'order!js/lib/pure',
              'order!js/lib/json2',
              'order!js/lib/underscore',
              'order!js/lib/backbone',
              'order!bkeeping/models', ]
      (jq, pur, jsn, und, bbn, models) ->

        console.log('bkeeping LOADED')

        # return an object with the dependencies in it 
        models : models
        jQuery : jQuery.noConflict()
        pure : pur                      # pure and json2 objects are simply used in other libs. I don't need them directly
        json2 : jsn 
        Underscore : _.noConflict()
        Backbone : Backbone.noConflict()
    )

他のヒント

最新のjQueryはAMDローダーをサポートし、require.jsで正常に動作します。アンダースコアとバックボーンはありません。どちらも必要です。

  1. たとえば、変更されたバージョンを使用します 1 requireの著者から。
  2. プラグインを使用します。私は使用を見つけました!からのプラグイン ここ 私のニーズに完全に合うように。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top