Include: Pack your JavaScript with ease
Date : 2008 02 26 Category : Tech & DevelopmentBrian Moschel just told us about Include:
It determines which files to compress at runtime and automatically compresses them into one script using Dean Edwards' Packer.
You can include any JavaScript from any other JavaScript with a relative path:
PLAIN TEXT JAVASCRIPT:include('myscript.js');
Then turn on compression like this:
PLAIN TEXT JAVASCRIPT:include.setup({env: 'compress'});
include('javascripts/prototype', 'javascripts/myapplication');
When you reload the page, a window will open that contains a list of the scripts as they are loaded, the uncompressed collection of code, and the code compressed with Packer. You save the compressed code on your server and turn on production mode:
PLAIN TEXT JAVASCRIPT:include.setup({env: 'production', production: 'path/to/prod'});
include('javascripts/prototype', 'javascripts/myapplication');
Scripts load in the same order across all browsers (last-in first-out), which is nice, considering document.write by default works differently in Opera.
Another aspect we're excited about is that Include makes it so you'll never have to write a custom server-side compression script again. Since the scripts to compress are determined at runtime, you can easily compress large libraries with conditional plugins, like TinyMCE.
PLAIN TEXT JAVASCRIPT:if (selected_plugins['fullscreen']);
include('dependencies','fullscreen');
// conditionally include plugin
if (selected_plugins['search']);
include('search');
Instead of duplicating that logic in a server-side script, you can choose your plugins, turn on compress mode, and you've got your compressed code. To demonstrate this, we ported TinyMCE and plugins to use Include.
Include is open-source with an MIT license. I hope you find it as useful as we have.
