在requirejs,你可以定義一個模塊沒有設置它的名字從字面上看,例如:requirejs如何確保爲匿名模塊正確設置模塊名稱?
//in a.js
define([/*deplist*/],function(){
/*do something*/
});
//in b.js
define([/*deplist*/],function(){
/*do something*/
});
而且requirejs將根據其文件名(「A」和「B」)設置的模塊名稱。 Requirejs全部添加<script>
標記您的應用程序需要,它們不會按順序加載(如網絡時間表所述)。
當被叫define
模塊來定義自身,它毫不知情的模塊名稱,然後把自己的defQueue
等待初始化。初始化將在加載事件處理程序中完成,因爲在事件處理函數中,節點引用是可訪問的,並且模塊名稱是節點屬性上的記錄(如下所示:<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="a" src="./a.js"></script>
)。
問題出在這裏,我們無法確保模塊調用define
的順序與模塊的節點load
事件觸發相同。那麼模塊名稱如何才能正確映射到模塊工廠?