// do some stuff... } You can require other libs and export your stuff Each module is loaded in it’s own sandbox You can expose stuff by putting it into exports
'resource:///modules/', // provide module global bindings globals: { console: { log: dump } }, // provide set of built-in modules modules: { 'dev-tools/gcli': Cu.import('resource:///modules/gcli.jsm'), 'net/utils': Cu.import('resource:///modules/NetUtil.jsm'), } }) Creating a loader is pretty simple