2014-02-11 79 views
2

我是AMD和像require.js這樣的加載程序的新手,但到目前爲止,我一直假定正確構造的require.js項目不會創建任何全局變量。如何像jQuery這樣的腳本可以通過require.js加載並且看起來符合AMD標準,但是它仍然會創建一個全局變量$變量?

我是否誤解了AMD兼容的含義或其工作原理?我期待到寫我自己的AMD兼容的模塊,但我要確保我做事情的正確方法...

requirejs.config({ 
    baseUrl: 'js', 
    paths: { 
     "jquery": "//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min" 
    } 
}); 

require(["jquery"], function(jquery) { 
    console.log(jquery); 
    console.log($); // This works, but I wouldn't expect it to. 
}); 

回答

1

JQuery的創建全局變量$因爲jQuery是沒有設計成一個AMD模塊,儘管它支持它。如果您閱讀了關於JQuery的部分,您可以將JQuery封裝爲刪除全局$範圍,如here所述,它解釋了全局變量存在的原因。我記得當我第一次開始使用requirejs時這樣做,但是它引起了一些插件問題......我記得

相關問題