UNPKG

requisite

Version:
258 lines (235 loc) 8.07 kB
// Generated by CoffeeScript 1.12.5 var absolutePath, args, bundleFile, clone, error, extname, file, formatDate, fs, help, i, j, len, len1, modulePath, opt, opts, out, outputBundle, outputName, path, ref, ref1, ref2, ref3, requireAs, requisite, seen, toRegex, version; clone = require('clone'); fs = require('fs'); path = require('path'); toRegex = require('to-regexp'); requisite = require('../lib'); formatDate = require('../lib/utils').formatDate; error = function(message) { console.error(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 -a, --async bundle is expected to be required asynchronously\n -b, --bare compile without a top-level function wrapper\n -n, --naked compile without a module-level function wrapper\n -d, --dedupe deduplicate modules (when multiple are specified)\n -i, --include <module:path> force inclusion of module found at path\n -g, --global make prelude require global\n --export automatically export entry module as global\n --no-require do not automatically require entry module\n -m, --minify minify output\n --minifier minifier to use\n -o, --output <file> write bundle to file instead of stdout, {} may be used as a placeholder\n -p, --prelude <file> file to use as prelude\n --prelude-async include async prelude\n --prelude-only only output prelude\n --no-prelude exclude prelude from bundle\n -r, --resolve <module:path> do not automatically resolve module, use provided path\n --require-as <path> resolve bundle using providing path\n -s, --skip <path> skip modules matching path\n --source-map enable source maps\n --strict add \"use strict\" to each bundled module\n --strip-debug strip `alert`, `console`, `debugger` statements\n -w, --watch write bundle to file and and recompile on file changes\n -x, --exclude <glob|regex> exclude modules matching glob or regex from being automatically parsed\n --base path all requires should be relative to\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 = { async: false, bare: false, base: null, dedupe: false, exclude: [], exported: null, files: [], include: {}, minify: false, naked: false, output: [], prelude: null, preludeAsync: null, required: true, resolved: {}, skip: [], sourceMap: false, strict: false, stripDebug: 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 '-a': case '--async': opts.async = true; break; case '-b': case '--bare': opts.bare = true; break; case '-n': case '--naked': opts.bare = true; opts.naked = true; break; case '-d': case '--dedupe': opts.dedupe = true; break; case '-g': case '--global': opts.globalRequire = true; break; case '-x': case '--exclude': opts.exclude.push(args.shift()); break; case '-s': case '--skip': opts.skip.push(args.shift()); break; case '--no-require': opts.required = false; break; case '--export': opts.exported = true; break; case '-i': case '--include': if (opts.include == null) { opts.include = {}; } ref = args.shift().split(':'), requireAs = ref[0], absolutePath = ref[1]; opts.include[requireAs] = absolutePath; break; case '-m': case '--minify': opts.minify = true; break; case '--minifier': opts.minifier = args.shift(); break; case '-o': case '--output': opts.output.push(args.shift()); break; case '-p': case '--prelude': opts.prelude = args.shift(); break; case '--no-prelude': opts.prelude = false; break; case '--source-map': opts.sourceMap = true; break; case '--prelude-async': case '--async-prelude': opts.includeAsync = true; break; case '--prelude-only': opts.preludeOnly = true; break; case '-r': case '--resolve': ref1 = args.shift().split(':'), requireAs = ref1[0], modulePath = ref1[1]; opts.resolved[requireAs] = modulePath; break; case '--require-as': opts.requireAs = args.shift(); break; case '-s': case '--strict': opts.strict = true; break; case '--strip-debug': opts.stripDebug = true; break; case '-w': case '--watch': opts.watch = true; break; case '--base': opts.base = args.shift(); break; default: if (opt.charAt(0) === '-') { error("Unrecognized option: '" + opt + "'"); } opts.files.push(opt); } } if (!(opts.files.length || opts.preludeOnly)) { help(); } if (opts.watch && !opts.output.length) { error('Output must be specified when using watch.'); } if (opts.files.length > 1 && (opts.output.indexOf('{}')) === -1) { seen = {}; ref2 = opts.output; for (i = 0, len = ref2.length; i < len; i++) { out = ref2[i]; if (seen[out] != null) { error('Output filenames overlap, perhaps you meant -o {}.js?'); } seen[out] = true; } } if (opts.dedupe) { ref3 = opts.files; for (j = 0, len1 = ref3.length; j < len1; j++) { file = ref3[j]; extname = path.extname(file); opts.exclude.push("^" + (file.replace(extname, '')) + "$"); } } if (opts.exclude.length > 0) { opts.exclude = toRegex(opts.exclude); } outputName = function(filename, output) { return output.replace('{}', filename).replace(/\.\w+$/, '.js').replace(/\.\/\//, ''); }; outputBundle = function(bundle, opts) { if (opts.output != null) { return fs.writeFileSync(outputName(bundle.normalizedPath, opts.output), bundle.toString(opts, 'utf8')); } else { return console.log(bundle.toString(opts)); } }; bundleFile = function(file, moduleCache) { var _opts; if (moduleCache == null) { moduleCache = {}; } if (file == null) { return; } _opts = clone(opts); _opts.entry = file; _opts.moduleCache = moduleCache; _opts.output = opts.output.shift(); if (_opts.dedupe) { _opts.prelude = false; } if (!opts.watch) { return requisite.bundle(_opts, function(err, bundle) { var ref4; if (err != null) { return console.error((ref4 = err.formattedMessage) != null ? ref4 : err.stack); } outputBundle(bundle, _opts); moduleCache = opts.dedupe ? bundle.moduleCache : {}; return bundleFile(opts.files.shift(), moduleCache); }); } else { return requisite.watch(_opts, function(err, bundle, filename) { var ref4; if (err != null) { return console.error((ref4 = err.formattedMessage) != null ? ref4 : err.stack); } if (filename != null) { console.log((formatDate()) + " - recompiling, " + filename + " changed"); } else { console.log((formatDate()) + " - compiled " + (outputName(bundle.normalizedPath, _opts.output))); } outputBundle(bundle, _opts); moduleCache = opts.dedupe ? bundle.moduleCache : {}; return bundleFile(opts.files.shift(), moduleCache); }); } }; bundleFile(opts.files.shift()); //# sourceMappingURL=cli.js.map