通过requirejs自动加载模块

时间:2013-08-21 16:29:58

标签: javascript requirejs

我想加载jQuery以及一些带有requirejs的插件。设置配置对象“paths”和“shim”属性有效。所以从TypeScript中我可以要求jQuery并通过amd依赖加载插件。

现在我想最小化加载jQuery和插件所需的代码。我可以以某种方式告诉requirejs“每当需要jQuery时,通过路径属性中给出的路径加载它。然后加载以下插件......”。

基本上这将允许我只需要jQuery。所有插件也会自动加载。

1 个答案:

答案 0 :(得分:6)

正如您所发现的,shim配置允许您定义在模块之前加载的内容,但是没有相应的功能可以在模块之后加载。但是,r.js优化的整体方法可以将它们一起捆绑在一个文件中,以节省加载时间。查看optimization section of shim example链接的requirejs jquery doc page

另外一个你可以添加的黑客就是定义你自己的模块来加载其他模块:

require.config( {
    shim: {
        jquery: { exports: ['jQuery', '$'] },
        plugin1: { deps: ['jquery'] },
        plugin2: { deps: ['jquery'] }
    }
});

define('jquerywithplugins', ['jquery', 'plugin1', 'plugin2'], function(jq) {
    return jq;
});

然后代替require(['jquery']) require(['jquerywithplugins'])