2012-03-01 3 views
2

私は道場層のすべての必需品

dojo.require("dojo.parser"); 
dojo.require("dijit.layout.BorderContainer"); 
dojo.require("dijit.layout.ContentPane"); 
dojo.require("dijit.layout.TabContainer"); 
dojo.require("dojox.grid.DataGrid"); 
dojo.require("dijit.Tree"); 
dojo.require("dojo.data.ItemFileReadStore"); 

を使用するサンプルスクリプトを持って、私は道場の縮小さビルドを作成したいので、私はこのプロファイル

dependencies = { 
    stripConsole : "normal", 
    selectorEngine : "acme", 
    optimize  : "closure", 
    layerOptimize : "closure", 
    cssOptimize  : "comments.keepLines", 
    mini   : true, 
    internStrings : true, 
    localeList  : "en-us", 
    releaseName  : "dojo.custom", 
    action   : "release", 
    optimize  : "shrinksafe", 
    layerOptimize : "shrinksafe", 

    layers : [ 
     { 
      name   : "dojo.js", 
      dependencies : [ 
       "dojo.parser", 
       "dojo.data.ItemFileReadStore", 
       "dojox.grid.DataGrid", 
       "dijit.layout.BorderContainer", 
       "dijit.layout.ContentPane", 
       "dijit.layout.TabContainer", 
       "dijit.Tree" 
      ] 
     } 
    ], 
    prefixes: [ [ "dijit", "../dijit" ], [ "dojox", "../dojox" ] ] 
} 

はい、ビルダーを使用するが含まれていません私のHTMLページに含まれている巨大なdojo.jsファイルをコンパイルしますが、依然として多くのxhr要求があります。システムは私が明示的に使用しないスクリプトを読み込みます。ここにあるのはscreenshot

+0

まだ1.6モジュールシステムを使用しています。それに対する特別な理由は何ですか? – hugomg

+0

実際、理由はありません。私は、最新のソース(1.7.2)をオフサイトからダウンロードし、プロファイルを作成しました。その後、utilsフォルダのサンプルとWeb上のチュートリアルでも作成されました。私は本当に公式の文書でビルドシステムの良い説明を見つけることができません。 – Tommi

+0

新しいバージョンには新しいAMDモジュールシステムとローダーが付属しているためです。 (ビルドシステムのドキュメントは依然として非常に混乱していますが) – hugomg

答えて

2

興味深い。

ブラウザが正常に圧縮されたバージョンを見つけて読み込んでいますか?

ブラウザは_base.jsを探していますが、これは確実にそのファイルに焼き付ける必要があります。

更新

トミ - dojo.js層は常にビルドシステムで構築されている、あなたは明示的に宣言する必要はありません。依存関係とともに明示的にそれを宣言すると、どのような効果が出るのかは分かりません。これはうまくいくかもしれませんが、そうでないかもしれません。おそらく、依存関係が通常のdojo.jsの内容をオーバーライドしている可能性があります。

私が通常行っているのは、システムにdojo.jsを作成させてから、必要なすべてのdijit/dojoxを持つレイヤーを作成して展開するだけです。私は通常、それに私のカスタムのものと3番目の別のファイルを作成します。

私はそれを試みます。 dojo.jsとは別のレイヤーを作ることが重要だと思います(ただし、あなたのページには通常のdojo.jsが含まれています)。

+0

はい、ビルダーは、devバージョンdojo.js.uncompressed.js、sizeof 1354 kb、および縮小されたdojo.js、sizeof 485 kbを作成します。 Chromeで、適切なサイズのdojo.jsがロードされていることがわかります。 – Tommi

+0

Tommi - 更新された答え。 – mtyson

+0

私はあなたのアプローチを完全には理解していないかもしれませんが、必要な依存性だけを持つ1つのレイヤーのdojo.custom.jsを作成し、dojo.jsレイヤーを削除すると、ビルダーは大きなdojo.jsとdojo.custom.jsを作成します。 /dojo/i18n.jsと/dojo/parser.jsが見つからないため、ブラウザがロードできません。しかし、私は明示的にカスタムレイヤーにパーサーを含めていますが、これは奇妙です。私は何か間違っていると思うが、正確に何が分かっているのか分からないので、私は私のアプローチにとどまり、後でそれに戻るだろう。とにかくあなたの時間を無駄にしていただきありがとうございます:) – Tommi

関連する問題