2013-05-07 10 views
7

Internを使用してRequire.jsプロジェクトをテストしようとしています。 jQueryプラグインがロードされているときにjQueryが定義されていないテストでエラーが発生しています。マイローダーの設定は次のようになります。内部構成がAMDシムを処理していない

loader: { 
    // Aliased paths 
    paths: { 
    'dt': 'dt', 
    'jq': 'jquery', 

    'jquery': 'jquery/jquery-1.8.3', 
    'jquerymx': 'jquery/jquerymx-3.2.custom', 
    'jquery.ui': 'jquery/jquery-ui-1.9.2.custom.min', 
    'jquery.ui.widget': 'jquery/jquery.ui.widget', 
    'jquery.jscrollpane': 'jquery/jquery.jscrollpane.min.edit', 
    'jquery.colorbox': 'jquery/jquery.colorbox-min', 
    'jquery.selectbox': 'jquery/jquery.selectbox-0.2.min.edit', 
    'jquery.base64': 'jquery/jquery.base64', 
    'jquery.cookie': 'jquery/jquery.cookie', 
    'jquery.urldecoder': 'jquery/jquery.urldecoder.min', 
    'jquery.fileupload': 'jquery/jquery.fileupload', 
    'jquery.history': 'history/scripts/compressed/history.adapter.jquery', 

    'openajax': 'openajax_2.0.7/OpenAjaxUnmanagedHub', 
    'zeroclipboard': 'zeroclipboard/ZeroClipboard' 
    }, 

    // Plugin mappings 
    map: { 
    '*': { 
     'css': 'requirejs/require-css/css', 
     'text': 'requirejs/text' 
    } 
    }, 

    // Shims for non-AMD libraries, mainly jQuery plugins 
    shim: { 
    'openajax': { 
     exports: 'OpenAjax' 
    }, 

    'zeroclipboard': { 
     exports: 'ZeroClipboard' 
    }, 

    'jquerymx': ['jquery'], 
    'jquery.ui': ['jquery'], 
    'jquery.ui.widget': ['jquery'], 
    'jquery.jscrollpane': ['jquery'], 
    'jquery.colorbox': ['jquery'], 
    'jquery.selectbox': ['jquery'], 
    'jquery.base64': ['jquery'], 
    'jquery.cookie': ['jquery'], 
    'jquery.urldecoder': ['jquery'], 
    'jquery.fileupload': ['jquery'], 
    'jquery.history': [ 
     'jquery', 
     'history/scripts/compressed/history', 
     'history/scripts/compressed/history.html4' 
    ] 
    } 
} 

私は確かにjQueryを作るためにチェックしましたし、私の他の依存関係が実際にロードされている、と彼らは正しい順序でだけ、ではありません。 Internが使用するDojo AMDローダーはシム構成を処理しませんか?

答えて

3

問題は、internで使用されているAMDローダーが現在shim構成プロパティAMD Specificationを実装していないことです。私は実際にあなたがこの質問をするまでそれが標準の一部であることに気付かなかった。

現時点では、Internを介して別のAMDローダーを使用して機能テストを実行できますが、現時点では、ローカルマシンで単体テストを実行するのは難しいでしょう。

+1

ああ、私はそれが仕様の一部であったのでシムを実装したと仮定していました。自分自身で追加してみる必要があります:) – coreyschram

+0

独自のローダープラグインを使用してロード順序を制御できます。 http://stackoverflow.com/a/26531410/1859442を参照してください。 – Benjamin

1

私がしなければならなかったのは、ポイントuseLoaderの設定がrequire.jsとpoofでした。私は使い慣れたシムの設定と私のアプリで使用するパス設定を持っていた。 Bam。

関連する問題