2014-03-28 70 views
0

我正在測試require.js以獲得更加結構化的方式來加載庫依賴關係。但我似乎無法得到一個基本的例子來使用jQuery。我能看到的唯一一件事情就是我的JS庫在不同的子域中。require.js和jquery init

代碼:

<script src="http://scripts.test.com/arkon-main.js"></script> 
<script src="http://scripts.test.com/require.js"></script> 

ARKON-main.js

var require = {  
baseUrl: 'http://scripts.test.com', 
paths: {  
    page: 'http://mypage.test.com/script/page/', 
    jQuery: 'jquery', 

}, 
shim: { 
    'jQuery': { 
     exports: '$' 
    } 
} 

};

頁面模塊(這是PHP代碼,服務於JS,因此URL):

require(["jQuery"], function($) { 
    $(document).ready(function() { 
     alert('YES'); 
    }); 
}); 

在HTML:

<script>require(["page"]);</script> 

在我的 「網絡」 Chrome瀏覽它看起來(幾乎)好,我可以看到arkon-main.js,require.js,頁面模塊和jquery成功加載。但是:

我的問題是,頁面的jQuery之前加載這將導致這部分失敗。我不明白爲什麼,因爲我期望加載jQuery的需求然後運行裏面的代碼?

我曾嘗試在requirejs網頁不同的版本,也是例子,但我不能讓它在我的環境中工作。我只想要一個基本的設置,當我加載新頁面時(按照正確的順序),我可以使用require來加載所需的庫。

對此提出建議?

回答

0

由於名稱jquery在jQuery代碼中進行了硬編碼,jQuery必須被要求爲jquery,所有較低的上限。 (不幸的是,就是這樣。)另外,如果你從1.9.x開始使用jQuery(甚至可能還有更早的版本),那麼肯定不是指定的墊片。

這兩個問題只會誤導RequireJS和可能是什麼原因造成你的問題。

+0

謝謝,我試圖:1.用jquery替換jQuery 2.從config中刪除shim參數。它給了我以下錯誤:Uncaught ReferenceError:未定義jQuery jquery.js:6,Uncaught ReferenceError:$未定義.js:80(頁面模塊)。我正在使用jQuery 1.10.x – user3159921