Package management
jsclass
comes with a package manager that makes it really easy to load
libraries into your application on demand on all jsclass
’s supported
platforms. You can tell it which file each module in your
application lives in, and what other modules it depends on, and it takes care
of resolving dependencies and loading your code for you. This means your
application code only needs to specify which objects it needs, rather than
which scripts to download in order to run.
For example, say I want to do something with the Console
module. I just need to require
it, and supply a function to run once all the
requisite code has loaded:
JS.require('JS.Console', function(Console) { Console.puts('Hello, world!'); });
The package system only loads what is needed to get the objects you want, and it makes sure that each file is only downloaded once. Where possible, files are downloaded in parallel to improve performance, but it makes sure interdependent scripts run in the right order.
It is designed to be able to load any code from any domain, including from
libraries that have their own package systems. It does not require the files
it loads to follow any particular package format, but it can load files that
export global variables or a CommonJS module. It expects the arguments to
JS.require()
to either be the names of global objects, or exported
properties of a CommonJS module. Whichever format the loaded files use,
JS.require()
will yield the referenced objects as parameters to the callback
function.
You can use the jsbuild
command-line
tool to bundle your packages for
production.