好吧,我读了所有关于构建和所有关于dojo的内容.三天噩梦等等……需要一些帮助. 我正在使用最后一个版本的dojo. 1.7.2 in: /sites/somesite/scripts/dojo17which contains --dojo--dijit--dojox--utils 我使用
我正在使用最后一个版本的dojo. 1.7.2 in:
</sites/somesite/scripts/dojo17> which contains --dojo --dijit --dojox --utils
我使用以下配置文件:
dependencies = { stripConsole: "all", action: "release", optimize: "shrinksafe", layerOptimize: "shrinksafe", //optimize: "closure", //layerOptimize: "closure", //mini: true, //localeList : 'en-us', //cssOptimize: "comments", //selectorEngine: "acme", releaseName: "content7", layers: [ { // This is a specially named layer, literally 'dojo.js' // adding dependencies to this layer will include the modules // in addition to the standard dojo.js base APIs. name: "dojo.js", customBase : true, dependencies: [ "dojo.fx", "dijit.form.Button", "dojox.gauges.AnalogGauge", "dojox.gauges.AnalogArcIndicator", "dojox.gauges.AnalogNeedleIndicator", "myApp.smartmix" ] } ], prefixes: [ [ "dijit", "../dijit" ], [ "dojox", "../dojox" ], [ "myApp", "../../../myApp" ] ] };
然后我使用这个构建脚本
./build.sh profile=../../../../myApp/myApp.profile.js releaseDir=../../../release
我得到了
</sites/somesite/scripts/release/content7> which contains --dijit --dojo --dojox --myApp
现在我的index.html文件中有
<script type="text/javascript"> //<![CDATA[ var djConfig = { parseOnLoad: true, isDebug: false, modulePaths: { 'myApp': '../myApp' } }; //]]> </script> <script type="text/javascript" src="scripts/release/content7/dojo/dojo.js"></script> <script> dojo.require('myApp.smartmix'); </script>
并且这会将没有构建的230个文件减少到153个文件.
但仍然我(想)认为可以减少到一个或两个文件.
但是如何?????
请,一些帮助将不胜感激!!!!
好的,你的个人资料不对.第一个:您正在使用customBase,这是一个用于创建最小版dojo核心的高级属性.我不认为你想要那个,对吗?通常,你只是让dojo正常构建它的核心,最终在你的输出目录中以dojo.js形式出现.
第二个:每个图层条目都会生成一个缩小的.js文件,其中包含依赖项中的所有文件.
因此,如果您希望将myApp内容放在构建的JS文件中,则需要创建一个图层,并将文件放在其依赖项中.
Dojo仍将生成所有单个文件 – 但您不必部署它们.只需部署图层文件.我通常有一个Dojo核心层,一个我想要的dijit / dojox的层,然后是我自定义JS的一个层.然后有三个JS文件,dojo将在dojo目录中输出,它们在HTML页面中使用.