Dojo 一般的发布包是把各个组件单独存放在各自的文件中的,比如按钮控件对应 /dijit/form/Button.js,这样做对于代码的维护和开发是比较有利的。但如果放在生产环境,每个使用 Dojo 的页面将产生数十个单独的 HTTP 请求,则会影响到应用的性能。针对这个问题,Dojo 提供了一个自定义打包工具,可以将自己常用的组件合并到一个文件中,还能压缩 js、css 文件的大小,以提高性能。
使用此工具需要准备:
- Java 运行环境
- Dojo 的源代码包(以 -src 结尾)
接下来是创建 Profile。在 util/buildscripts/profiles 目录下,可以看到一些样例 profile,我们可以参考已有的创建一个:
dependencies ={
layers: [ { //第一部分 name: "mydojo.js", dependencies: [ //第二部分 "dijit.Button", "dojox.wire.Wire", "dojox.wire.XmlWire", "explosive.space.Modulator" ] } ],
prefixes: [ //第三部分 [ "dijit", "../dijit" ], [ "dojox", "../dojox" ], [ "explosive", "../../explosive" ] ]
};
下面说明一下各个主要部分的作用:
- 指定打包最后生成的文件名
- 列举都有哪些组件将被打包到此文件
- 各源文件所在的路径,比如 dijit 开头的包,都放在 ../dijit 目录下
然后,运行打包脚本,通过 profile 参数指定配置文件:
$ cd util/buildscripts
$ build.sh profile=foo action=release
最后,将打好包的文件替代原始的 Dojo 文件,加入到页面引用中就行了。