Building JS Resources
GeoExt code is structured with one file per component. In some applications, it may be appropriate to include the entire library. In other applications, only a limited subset of the library may be needed. The core contains a build directory with a sample configuration for concatenating/minifying (building) the code needed for your application.
$ easy_install http://svn.opengeo.org/jstools/trunk/
Change into the core/trunk/build directory and run the following:
$ jsbuild full.cfg
To get some more detail on what is being included in your build, use the -v option:
$ jsbuild full.cfg -v
The build config files contain multiple sections. The full.cfg file contains sections for GeoExt.js and ext.js. To build only one of the sections, use the -s option:
$ jsbuild full.cfg -s GeoExt.js
Different output path
By default, the resulting scripts will be created in the same directory as the config file. Use the -o option to specify a different path for the output:
$ jsbuild full.cfg -o ../path/to/output
Of course, the above options can be used in any combination. For additional documentation, see the JSTools site.
The jsbuild docs describe the configuration syntax that lets you specify what files to include, any files to exclude, and any special files that need to be included first or last. The GeoExt library will include directives in comments in the source to automatically include any dependencies. So, if one component extends another, your build profile only needs to reference the child, and the parent will be included in the build.
The ExtJS library does not use @requires or @include directives in the source comments. So, the configuration for building ext.js explicitly lists files in the order they need to be present. If you wish to exclude any files from your ext.js build, use a # to comment out the appropriate line in your build configuration.
Note that there are many non-obvious dependencies in the ExtJS code base. You may find the custom build by trial and error a bit frustrating. See the online build tool provided by ExtJS for an alternative.