我正在通過優化器文檔閱讀了很長一段時間,但似乎我無法確定它。該醫生說:requireJS優化器不包括嵌套的require調用
優化器將只合並了在陣列中的字符串文字 傳遞給頂層指定的模塊需要,並定義 呼叫,否則需要(「名」)字符串常量調用一個簡化的 CommonJS包裝。因此,它不會找到通過 變量名稱加載的模塊:
確定迄今爲止這麼好。這基本上意味着r.js將不包含也不抓取嵌套的依賴關係。現在讓我們假設我們有一個「主應用程序」文件,該文件如下所示:
require([ 'es5shim', 'tools' ], function() {
console.log('fictive app entry point');
require([ 'domready!' ], function(doc) {
console.log('domReady, loading GUI modules...');
require([ 'GUI/window', 'GUI/header', 'GUI/content' ]);
});
});
我想這個問題變得很明顯這裏。 r.js(優化器)僅通過將es5shim.js
和tools.js
鏈接到該文件來創建該文件。有沒有什麼好的方法/解決方法來告訴優化器,它也應該鏈接本例中的window.js
,header.js
和content.js
文件?
當然,在這個實例中的domReady
插件將被加載,它最終將執行回調,但結構本身看起來阻止了優化器的工作。
問題是:
如果我只是將列出所有模塊中的「前需要調用」,將r.js還包括鏈接+從嵌套的所有頂級
require
和define
電話和嵌套嵌套模塊到主應用程序文件?他們提包括r.js在文檔選項。這裏是否有意義,如果是這樣,如何正確調用它?
當然你不想以後上失去了選項來延遲加載的模塊,但是對於這種依賴(等待DOMContentLoaded),我希望有一種方式來變通方法。
我不明白:你爲什麼要嵌套首先要求?爲什麼不使GUI /窗口依賴於es5shim,並使es5shim依賴於domready! ? – machineghost 2012-07-26 17:10:35