我有幾個全局變量(jQuery +插件,構造函數等)的構建庫(連接,縮小和包括在require.js之前)。該庫被用作構建應用程序的基礎,並且具有假定的依賴關係。即如果我在庫之後包含我的應用程序腳本,那麼我可以自由使用jQuery和構造函數而不會有任何問題。requirejs與現有的全局變量
對於較大的應用程序,我正在考慮使用requirejs(管理應用程序中的不同模塊),同時仍使用此構建的庫。我該如何將jQuery等現有全局變量添加到require中的依賴項列表中?
<script src="pathto/lib.js" type="text/javascript"></script>
<script src="require.js" data-main="../js/app" type="text/javascript"></script>
requirejs.config({
shim: {
'jquery': {
exports: '$'
}
},
// jQuery is already loaded with lib.js, no need for any path...
path : {
jquery : 'jquery.js'
}
});
這可能嗎?或者我應該繼續假設應用程序模塊中會存在某些全局變量,因爲lib.js是在require/app js之前包含的?
使用require來加載lib.js是不可能的,因爲它是CMS的一部分。
- 編輯 -
有關使用一個名爲模塊,並且只返回全局對象的句柄,因爲這是其中的lib內容坐鎮反正什麼?
define("lib", function() {
return this;
});
require(["lib"], function (lib) {
// use existing globals found in lib via
lib.jQuery
// or simply
jQuery
});
這讓我遵循命名依賴關係的require()約定,而不是假設。