好吧,我读了所有关于构建和所有关于dojo的内容.三天噩梦等等......需要一些帮助.
我正在使用最后一个版本的dojo.1.7.2 in:
</sites/somesite/scripts/dojo17>
which contains
--dojo
--dijit
--dojox
--utils
Run Code Online (Sandbox Code Playgroud)
我使用以下配置文件:
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" ]
]
};
Run Code Online (Sandbox Code Playgroud)
然后我使用这个构建脚本
./build.sh profile=../../../../myApp/myApp.profile.js releaseDir=../../../release
Run Code Online (Sandbox Code Playgroud)
我得到了
</sites/somesite/scripts/release/content7>
which contains
--dijit
--dojo
--dojox
--myApp
Run Code Online (Sandbox Code Playgroud)
现在我的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>
Run Code Online (Sandbox Code Playgroud)
并且这会将没有构建的230个文件减少到153个文件.但仍然我(想)认为可以减少到一个或两个文件.
但是如何?????
请帮助一些帮助!!!!
好吧,你的个人资料不正确。
首先:您正在使用customBase
,这是用于创建最小版本的 dojo 核心的高级属性。我想你不希望这样,是吗?通常,您只需让 dojo 正常构建其核心,最终会在输出目录中生成 dojo.js 。
第二:每个layer
条目都会生成一个缩小的 .js 文件,其中包含所有文件dependencies
。
因此,如果您希望将myApp
内容保存在构建的 JS 文件中,则需要创建一个层,并将文件放入其依赖项中。
Dojo 仍然会生成所有单独的文件 - 但您不必部署它们。只需部署图层文件即可。我通常有一个用于 Dojo 核心的层,一个用于我想要的 dijit/dojox 内容的层,然后是一个用于我的自定义 JS 的层。然后是三个JS文件,dojo将在dojo目录中输出这三个JS文件,并在HTML页面中使用它们。