9

requirejs2 で shim を使用して、モジュールが既に読み込まれていることを require に伝える方法はありますか?

例:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="undescrore.js"></script>
<script type="text/javascript" src="require.js'"></script>
<script type="text/javascript">
    require.config({
        paths: {
            "backbone": '/vendor/js/backbone-min.js'
        },
        shim: {
            'backbone': {
                //These script dependencies should be loaded before loading
                //backbone.js
                deps: ['underscore', 'jquery'], // here I would like to load the already loaded library
            }
        }
    });
</script>
4

2 に答える 2

23

アンダースコアが既にロードされていて利用可能な場合は、shim はまったく必要ありません。バックボーンは問題なくロードされます。そうでない場合は、アンダースコアが実際に読み込まれていない可能性があります。

ただし、require.js を部分的にのみ使用するのは間違っているように思えますが、それらすべてを AMD でロードすることもできます。そのためには、シムを次のように変更する必要があります。

shim: {
    backbone: {
        deps: ["underscore", "jquery"],
        exports: "Backbone"
    },

    underscore: {
        exports: "_"
    }
}

もちろん、あなたのを更新してくださいpaths

于 2012-05-29T19:57:36.390 に答える