UNPKG

requisite

Version:

A cosmic javascript bundler.

158 lines (142 loc) 4.81 kB
// Generated by CoffeeScript 1.7.1 var absolutePath, args, err, error, file, fs, help, module, opt, opts, path, requireAs, requisite, version, writeBundle, _fn, _i, _len, _ref, _ref1; fs = require('fs'); path = require('path'); requisite = require('../lib'); error = function(message) { console.log(message); return process.exit(1); }; help = function() { console.log("\nUsage: requisite [options] [files]\n\nOptions:\n\n -h, --help display this help\n -v, --version display version\n -b, --bare compile without a top-level function wrapper\n -d, --dedupe deduplicate modules (when multiple are specified)\n -e, --export <name> export module as <name>\n -i, --include [module, ...] additional modules to include, in <require as>:<path to module> format\n -m, --minify minify output\n -o, --output <file> write bundle to file instead of stdout, {} can be used as a placeholder.\n -p, --prelude <file> file to use as prelude\n --no-prelude exclude prelude from bundle\n -s, --strict add \"use strict\" to each bundled module.\n -w, --watch write bundle to file and and recompile on file changes\n -x, --exclude <regex> regex to exclude modules from being parsed\n\nExamples:\n\n # bundle javascript file and all it's dependencies\n $ requisite module.js -o bundle.js\n\n # bundle several modules, appending .bundle.js to output\n $ requisite *.js -o {}.bundle.js"); return process.exit(0); }; version = function() { console.log(require('../package').version); return process.exit(0); }; opts = { bare: false, exclude: null, "export": null, files: [], include: [], minify: false, output: null, prelude: null, strict: false, watch: false }; args = process.argv.slice(2); while (opt = args.shift()) { switch (opt) { case '-h': case '--help': help(); break; case '-v': case '--version': version(); break; case '-b': case '--bare': opts.bare = true; break; case '-x': case '--exclude': opts.exclude = new RegExp(args.shift()); break; case '-e': case '--export': opts["export"] = args.shift(); break; case '-i': case '--include': while (((module = args.shift()) != null) && module.charAt(0) !== '-') { try { _ref = module.split(':'), requireAs = _ref[0], absolutePath = _ref[1]; opts.include[requireAs] = absolutePath; } catch (_error) { err = _error; help(1, 'Invalid argument to include'); } } break; case '-m': case '--minify': opts.minify = true; break; case '-o': case '--output': opts.output = args.shift(); break; case '-p': case '--prelude': opts.prelude = args.shift(); break; case '--no-prelude': opts.prelude = false; break; case '-s': case '--strict': opts.strict = true; break; case '-w': case '--watch': opts.watch = true; break; default: if (opt.charAt(0) === '-') { error('Unrecognized option'); } opts.files.push(opt); } } if (!opts.files.length) { help(); } if (opts.watch && (opts.output == null)) { error('Output must be specified when using watch.'); } if (opts.files.length > 1 && (opts.output.indexOf('{}')) === -1) { error('Output filenames overlap, perhaps you meant -o {}.js?'); } writeBundle = function(bundle) { var ext, extout, filename, output; if (opts.output != null) { filename = path.basename(bundle.requiredAs); ext = path.extname(filename); extout = path.extname(opts.output); if (ext === extout) { filename = filename.replace(ext, ''); } output = opts.output.replace('{}', filename); return fs.writeFileSync(output, bundle.toString(opts, 'utf8')); } else { return console.log(bundle.toString(opts)); } }; _ref1 = opts.files; _fn = function(file, opts) { opts = JSON.parse(JSON.stringify(opts)); opts.entry = file; if (!opts.watch) { return requisite.bundle(opts, function(err, bundle) { return writeBundle(bundle); }); } else { return requisite.watch(opts, function(err, bundle, filename) { if (filename != null) { console.log("" + (/\d{2}:\d{2}:\d{2}/.exec(new Date())[0]) + " - recompiling, " + filename + " changed"); } else { console.log("" + (/\d{2}:\d{2}:\d{2}/.exec(new Date())[0]) + " - compiled " + opts.output); } return writeBundle(bundle); }); } }; for (_i = 0, _len = _ref1.length; _i < _len; _i++) { file = _ref1[_i]; _fn(file, opts); } //# sourceMappingURL=cli.map