2013-08-21 180 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