2013-08-21 185 views
2

我想加载jQuery加上几个插件与requirejs。设置配置对象“路径”和“填充”属性的作品。所以从TypeScript中我可以要求jQuery并通过amd依赖加载插件。通过requirejs自动加载模块

现在我想尽量减少加载jQuery和插件所需的代码。我可以不知何故告诉requirejs“每当需要jQuery时,通过路径属性中给出的路径加载它,然后加载下面的插件......”。

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

回答

6

当你发现时,shim配置可以让你定义什么被加载以前一个模块,但有一个为模块后加载的东西没有相应的功能。但是,r.js优化的整体方法是让您将它们全部捆绑在一个文件中以节省加载时间。请参阅从requirejs jquery doc page链接的optimization section of shim example

你可能会在此之上添加其他黑客是只定义自己的模块,加载其他:

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'])

+0

加载的jQuery加插件作品。但是,当在TypeScript中编码import $ = require(“jquerywithplugins”)时,则不知道'$'是jQuery。所以intellisense不起作用。 – mgs

+0

**更正**在上面的导入之后,可以对'declare var $:JQueryStatic;'进行编码。然后intellisense确实有效。 – mgs