我想要給文件夾結構here。使用require.js加載JavaScript庫
區別在於我正在使用這些庫的所有最新開發版本。但是,他們沒有正確上傳,甚至jquery。我無法理解AMD兼容的意思。
我只是下載了這些庫。這是否意味着它們不兼容AMD?是否有單獨的AMD兼容版本的這些庫?我們是否需要使用shim config來加載非AMD兼容?
我害怕使用墊片,因爲require.js官方文檔說它不被推薦。
我想要給文件夾結構here。使用require.js加載JavaScript庫
區別在於我正在使用這些庫的所有最新開發版本。但是,他們沒有正確上傳,甚至jquery。我無法理解AMD兼容的意思。
我只是下載了這些庫。這是否意味着它們不兼容AMD?是否有單獨的AMD兼容版本的這些庫?我們是否需要使用shim config來加載非AMD兼容?
我害怕使用墊片,因爲require.js官方文檔說它不被推薦。
我找不到任何提及的shim
在文檔中是「不推薦」的;我不會太擔心這件事。這是一種經過充分測試並且日益流行的將不符合AMD標準的庫與RequireJS進行橋接的方法(以前,唯一的方法是構建一個包含在定義調用中的專用AMD版本;這會使圖書館維護人員付出額外的努力) 。
如果「最新開發版」你的意思是jQuery的預發行版本,它看起來像它確實支持AMD(看看下載頁面的pre-release section,向下滾動至最底部source code file:你會看到與AMD代碼)
Backbone
和underscore
需要在任何情況下墊高,因爲它們是AMD無關,所以沒有從它(這兩個特定庫即使在shim config option documentation example使用,這樣就可以逃脫只是重用)。
@ kryger的權利,jQuery是AMD兼容的,墊片非AMD模塊沒有錯。
AMD兼容只是意味着該模塊符合AMD specification;因此它輸出它的功能。例如:
define(['jquery', 'underscore'], function ($, _) {
// function body
});
所以在函數體,上面:
$
參數訪問jQuery的;但_
參數將爲undefined
。一些AMD兼容模塊(如jQuery的)也行「獨立」,如在一個HTML標籤<script>
,他們將在那裏出口到全局命名空間(例如window.$
)。
我認爲jQuery的還是出口全球$
當您通過AMD加載器加載它,所以你可以只在您的入口點/加載的jQuery一旦第一需要的時候它總是訪問全局$
(而不是定義$
參數)。另外,如果你使用jQuery插件(修改全局的插件),它可能會讓你感到困惑!