2012-08-11 47 views
3

我有一個問題想創建一個自定義建立在道場,我甚至不知道是我想它可能是什麼..道場自定義生成1.6到單個文件

我希望有一個「單一的js文件「加載我在應用程序中使用的所有組件。所以它不會加載多個文件,只是包含我需要的文件,或者至少只包含我需要的文件。

據我所知,我需要爲這個版本創建一個配置文件,這是我使用的配置文件(配置文件文件夾中的文件例如:test.profiles.js)。

dependencies ={ 
    layers: [ 
     { 
     name: "test_dojo.js", 
     customBase: true, 
     selectorEngine: "acme", 
     dependencies: [ 
      "dojo/dojo", 
      "dijit.form.Form", 
      "dijit.form.Button", 
      "dijit.form.Textarea", 
      "dojo.parser", 
      "dijit.form.MultiSelect", 
      "dijit.layout.ContentPane", 
      "dijit.layout.BorderContainer", 
      "dijit.Toolbar", 
      "dijit.form.TextBox", 
      "dijit.form.SimpleTextarea", 
      "dijit.form.ComboBox", 
      "dojo.date", 
      "dojo.date.locale", 
      "dijit.form.DateTextBox", 
      "dijit.layout.TabContainer", 
      "dojo.data.ItemFileReadStore", 
      'dijit.Dialog', 
      "dojox.grid.DataGrid", 
      "dijit.form.DropDownButton", 
      "dijit.form.CheckBox", 
      "dijit.form.FilteringSelect", 
      "dijit.form.NumberTextBox", 
      "dijit.Tree", 
      "dojox.charting.Chart2D", 
      "dojox.charting.widget.Legend", 
      "dojox.charting.action2d.Tooltip", 
      "dojox.charting.action2d.Magnify", 
      "dojox.charting.themes.PlotKit.green", 
      "dojox.charting.themes.PlotKit.red", 
      "dojox.charting.themes.PlotKit.blue", 
      "dojox.widget.Standby", 
      "dojox.form.Uploader", 
      "dojox.form.uploader.plugins.IFrame", 
      "dojox.form.uploader.FileList", 
      "dijit.ProgressBar", 
      "dojox.embed.Flash", 
      "dijit.Tooltip", 
      "dojox.cometd", 
      "dijit._base.scroll" 
     ] 
     } 
    ], 
    prefixes: [ 
     [ "dijit", "../dijit" ], 
     [ "dojox", "../dojox" ] 
    ] 
}; 

我跑這樣說: >的build.bat輪廓=測試行動=釋放

這產生了我的文件夾 「放」 裏面,如果這個我覺得道場 - >道場,dijit的, dojox文件夾和內部dojo - > test_dojo.js

我將發佈的內容複製到應用程序中,並替換html文件中的腳本標記。

<script src="/dojo_release/dojo/test_dojo.js" type="text/javascript" 
djconfig="usePlainJson: true,parseOnLoad: true"></script> 

,但得到的錯誤:

「道場是不符合14定義的」如果我嘗試加載道場然後將此文件:

<script src="/dojo_release/dojo/dojo.js" type="text/javascript" 
djconfig="usePlainJson: true,parseOnLoad: true"></script> 
    <script src="/dojo_release/dojo/psirt_dojo.js" type="text/javascript"></script> 

我調試應用程序和得到這是試圖加載幾個文件(因爲它曾經),並得到錯誤,如「無法加載'dijit.form.Form';最後嘗試'../dijit/form/Form.js'」

這可能是一個基本的問題道場和更多與自定義構建的東西。

我是否有正確的配置文件或可能是什麼問題在這裏,我做錯了什麼。

回答

2

你不需要'customBase'標誌來做到這一點。你可以簡單地用當前內容覆蓋dojo.js文件_plus你自己的一些緩存模塊。

dependencies ={ 
    selectorEngine: "acme", 
    layers: [ 
     { 
     name: "../dojo/dojo.js", 
     dependencies: [ 
     ... 
     ] 
    } 
} 
+0

非常感謝這解決了問題 – cesaregb 2012-08-13 15:46:54