4

私は次のコードを持っています。

<script src="js/libs/require.js"></script>
<script>
    requirejs.config({
        baseUrl:'js/modules/',
        paths:{
            'bbn':'../libs/backbone',
            'underscore':'../libs/underscore'
        },
        shim:{
            'bbn':{
                exports:'B',
                deps:['underscore']
            }
        }
    })  
    requirejs(['bbn'], function(B){
        console.log(B)
    });
</script>

関数パラメーターBがを指していませんBackbone。代わりに、としてログに記録されundefinedます。

私は次の投稿をたどり、この時点に到達しました。

RequireJSを使用してshim経由でHighchartsをロードし、jQueryの依存関係を維持する

underscoreとJavaScriptファイルの両方backboneがfirebugにダウンロードされているのがわかります。

4

2 に答える 2

6

Underscore も AMD 互換ではないため、次のshimことも確認してください。

requirejs.config({
baseUrl:'js/modules/',
paths:{
    'bbn':'../libs/backbone',
    'underscore':'../libs/underscore'
},
shim:{
    'bbn':{
        exports:'Backbone',
        deps:['underscore']
    },
    'underscore': {
        exports: '_'
    }
}
})  
requirejs(['bbn'], function(Backbone){
console.log(Backbone)
});

Underscore がダウンロードされているのがわかりますが、適切なモジュールとして定義されていないため、RequireJS はそれを通常の JS ファイルとして扱い、戻り値を取得しません。

于 2013-01-31T16:18:09.350 に答える