TL;問題底部的DR,用於那些不想閱讀我所有垃圾的人。將代碼轉換爲RequireJS
我目前的JavaScript模塊化方法是簡單地創建一個全局錨,比如「csc」(我的公司首字母縮寫詞),然後開始將模塊添加到該錨上。
所以我會擁有一個全球性的結構,如:
csc.
Utils
Map
.Geolocation
Storage.
Cookie
DB
而且每個文件都存儲在目錄結構:
csc.js
csc.Utils.js
csc.Map.js
csc.Storage.js
這樣就無需加載我的整個代碼庫。
我試圖轉向使用RequireJS,但該庫使用的方法似乎有點不同。爲了保持我的命名空間結構,我可以在我的所有模塊中定義模塊,但仍然將它們粘貼到全局「csc」引用中。然而這似乎違背了Require的核心原則。
沒有讓他們全球性的,但是,我失去了我很好的命名空間,如「csc.Map.Geolocation」因爲我現在有一堆獨立的變量,就像這樣:
require(['csc', 'csc.Utils', 'csc.Map'], function (csc, utils, map) {
});
我脫光我的問題到本質,萬一我可怕的以上描述並不足以:
有沒有一種方法,也許是模塊定義中,這三個變量恢復合併到在這個問題上所定義的結構?或者,我是否全力以赴,我是否應該堅持要求做事的方式? 我很喜歡遵循Require方法,但我也很喜歡將所有模塊鏈接起來並命名空間的能力。
AMD的主要優勢之一是失去對命名空間的依賴。嘗試擁抱它。沒有技術理由繼續使用它們。 –