BTM Packager
About
BTM-Packager was created to allow for easier development of large JavaScript/CSS files/libraries. It combines and optionally compresses & encodes groups of CSS and JavaScript files. This not only simplifies distribution, it also improves performance by reducing HTTP requests, and reducing HTTP traffic. The initial demand for this was the BTM-JS library.
History
The initial idea came from examining the Prototype source files. Because of their background with Ruby on Rails, the Prototype team uses a Rake process to build the separate JS source files into a single prototype.js. I didn't particularly like the way their process worked, having extra non JavaScript code in the source files, but I liked the result: logically separated source, and an easy to build single-file result.
An interim solution using a series of shell scripts expanded the scope to include the following:
- automatic code compression & encoding for both JavaScript and CSS
- generating documentation for both JavaScript and CSS
- inserting license details into output files
Requirements & Dependencies
- PHP5. I have no plans to support PHP4.
- Nicolas Martin's PHP port of Dean Edwards' Packer is used for compressing & encoding JavaScript files.
- Growl (Mac/Windows) is used for reporting, where available (via BTMGrowl)
Future
BTM-Packager is still being improved, below are some of the current plans:
- Support for the {less} CSS system
- More IDE plugins
- Generate documentation from source files, using JSDoc Toolkit and CSSDoc
Availability
Currently BTM-Packager is available as:
- a script to run from a command shell (Windows/Mac/Linux); and
- as a plugin for Coda
