2013-01-08 223 views
1

儘管使用了Dojo構建系統,但我的應用程序仍然包含大量的javascript文件,我希望這些文件可以被構建覆蓋。在Dojo內部包含依賴關係

這裏是我的建造輪廓:

var profile = (function(){ 
    return { 
     basePath: "./", 
     releaseDir: "release", 
     action: "release", 
     selectorEngine: "acme", 
     cssOptimize: "comments.keepLines", 

     packages:[{ 
      name: "dojo", 
      location: "dojo" 
     },{ 
      name: "dijit", 
      location: "dijit" 
     },{ 
      name: "dojox", 
      location: "dojox" 
     },{ 
      name: "my", 
      location: "my" 
     }], 

     layers: { 
      "my/admin": { 
       include: ['dojo/ready', 'dojo/dom', 'dojo/query', 'dojo/request/xhr', 'my/Form', 'my/Tree/Radio'] 
      } 
     } 
    }; 
})(); 

的應用程序仍然包括在每個請求以下JS文件:my/Form.js(儘管這是在配置文件中列出),dojo/fx/Toggler.jsdijit/_base.jsdijit/WidgetSet.jsdijit/_base/focus.jsdijit/_base/place.jsdijit/place.jsdijit/_base/popup.jsdijit/popup.jsdijit/BackgroundIframe.jsdijit/_base/scroll.jsdijit/_base/sniff.jsdijit/_base/typematic.jsdijit/typematic.jsdijit/_base/wai.jsdijit/_base/window.js

my/Tree/Radio延伸dijit/Tree,所以我假設大量的文件的以上是正在由dijit.Tree自動加載的dijit基礎文件。但是,構建工具當然應該解決這樣的依賴關係,並將它們包含在「構建」文件中?

我正在使用Dojo 1.8.3。

回答

2

dojo/fx,它會動態查找的Toggler與評論

use indirection so modules not rolled into a build 

不知道爲什麼,但如果添加到dojo/fx/Toggler構建腳本的include,它不應該讓更多的XHR請求。

編輯:顯然dijit/Widgetdijit/_base有類似之處,所以你也想把它添加到includes。

http://trac.dojotoolkit.org/ticket/14262

+0

Thanks!在配置文件中添加'dijit/_base'和'dojo/fx/Toggler'已經刪除了所有這些額外的請求,所以我接受了這個答案。唯一仍然分開加載的是'my/Form.js'(即使它在構建中列出),所以如果你有任何想法,將不勝感激。 –

+0

我沒有看到任何與你發佈的內容脫穎而出的東西。我會查看構建日誌,看看是否有可能不包含它的原因。 –