...
What adding a module to a stack accomplishes is that the module's code is downloaded in the first, initial _javascript_ download; the download of the stack's virtual library. When (and if) the module is required as a dependency, the code will already be present in the browser and ready to execute.
Tapestry does not attempt to do dependency analysis; that is left as a manual exercise. Typically, if you aggregate a module, your should look at its dependencies, and aggregate those as well. Failure to do so will cause unwanted requests back to the Tapestry server for the dependency modules, even though the aggregated module's code is present.
...
The core stack includes several libraries and modules; the exact configuration is subject to a number of factors (such as whether Prototype or Scripaculous jQuery is the being used as the underlying framework). That being said, this is the current list of modules aggregated into the core stack:
- jquery
- underscore
- t5/core/
- alert
- ajax
- bootstrap
- console
- dom
- events
- exception-frame
- fields
- pageinit
- messages
- util
- validation
The optimum configuration is always a balancing act between including too little and including too much. Generally speaking, including too much is less costly than including too little. It is up to you to analyze the requests coming into your application and determine what modules should be aggregated.