1 | #!/usr/bin/env node
|
2 | 'use strict';
|
3 |
|
4 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
5 |
|
6 | var fs = require('fs');
|
7 | var require$$0 = _interopDefault(require('module'));
|
8 | var require$$1 = _interopDefault(require('path'));
|
9 | var sourceMapSupport = require('source-map-support');
|
10 |
|
11 | function createCommonjsModule(fn, module) {
|
12 | return module = { exports: {} }, fn(module, module.exports), module.exports;
|
13 | }
|
14 |
|
15 | var index = createCommonjsModule(function (module) {
|
16 | module.exports = function (args, opts) {
|
17 | if (!opts) opts = {};
|
18 |
|
19 | var flags = { bools : {}, strings : {}, unknownFn: null };
|
20 |
|
21 | if (typeof opts['unknown'] === 'function') {
|
22 | flags.unknownFn = opts['unknown'];
|
23 | }
|
24 |
|
25 | if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
|
26 | flags.allBools = true;
|
27 | } else {
|
28 | [].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
|
29 | flags.bools[key] = true;
|
30 | });
|
31 | }
|
32 |
|
33 | var aliases = {};
|
34 | Object.keys(opts.alias || {}).forEach(function (key) {
|
35 | aliases[key] = [].concat(opts.alias[key]);
|
36 | aliases[key].forEach(function (x) {
|
37 | aliases[x] = [key].concat(aliases[key].filter(function (y) {
|
38 | return x !== y;
|
39 | }));
|
40 | });
|
41 | });
|
42 |
|
43 | [].concat(opts.string).filter(Boolean).forEach(function (key) {
|
44 | flags.strings[key] = true;
|
45 | if (aliases[key]) {
|
46 | flags.strings[aliases[key]] = true;
|
47 | }
|
48 | });
|
49 |
|
50 | var defaults = opts['default'] || {};
|
51 |
|
52 | var argv = { _ : [] };
|
53 | Object.keys(flags.bools).forEach(function (key) {
|
54 | setArg(key, defaults[key] === undefined ? false : defaults[key]);
|
55 | });
|
56 |
|
57 | var notFlags = [];
|
58 |
|
59 | if (args.indexOf('--') !== -1) {
|
60 | notFlags = args.slice(args.indexOf('--')+1);
|
61 | args = args.slice(0, args.indexOf('--'));
|
62 | }
|
63 |
|
64 | function argDefined(key, arg) {
|
65 | return (flags.allBools && /^--[^=]+$/.test(arg)) ||
|
66 | flags.strings[key] || flags.bools[key] || aliases[key];
|
67 | }
|
68 |
|
69 | function setArg (key, val, arg) {
|
70 | if (arg && flags.unknownFn && !argDefined(key, arg)) {
|
71 | if (flags.unknownFn(arg) === false) return;
|
72 | }
|
73 |
|
74 | var value = !flags.strings[key] && isNumber(val)
|
75 | ? Number(val) : val
|
76 | ;
|
77 | setKey(argv, key.split('.'), value);
|
78 |
|
79 | (aliases[key] || []).forEach(function (x) {
|
80 | setKey(argv, x.split('.'), value);
|
81 | });
|
82 | }
|
83 |
|
84 | function setKey (obj, keys, value) {
|
85 | var o = obj;
|
86 | keys.slice(0,-1).forEach(function (key) {
|
87 | if (o[key] === undefined) o[key] = {};
|
88 | o = o[key];
|
89 | });
|
90 |
|
91 | var key = keys[keys.length - 1];
|
92 | if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
|
93 | o[key] = value;
|
94 | }
|
95 | else if (Array.isArray(o[key])) {
|
96 | o[key].push(value);
|
97 | }
|
98 | else {
|
99 | o[key] = [ o[key], value ];
|
100 | }
|
101 | }
|
102 |
|
103 | function aliasIsBoolean(key) {
|
104 | return aliases[key].some(function (x) {
|
105 | return flags.bools[x];
|
106 | });
|
107 | }
|
108 |
|
109 | for (var i = 0; i < args.length; i++) {
|
110 | var arg = args[i];
|
111 |
|
112 | if (/^--.+=/.test(arg)) {
|
113 | // Using [\s\S] instead of . because js doesn't support the
|
114 | // 'dotall' regex modifier. See:
|
115 | // http://stackoverflow.com/a/1068308/13216
|
116 | var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
|
117 | var key = m[1];
|
118 | var value = m[2];
|
119 | if (flags.bools[key]) {
|
120 | value = value !== 'false';
|
121 | }
|
122 | setArg(key, value, arg);
|
123 | }
|
124 | else if (/^--no-.+/.test(arg)) {
|
125 | var key = arg.match(/^--no-(.+)/)[1];
|
126 | setArg(key, false, arg);
|
127 | }
|
128 | else if (/^--.+/.test(arg)) {
|
129 | var key = arg.match(/^--(.+)/)[1];
|
130 | var next = args[i + 1];
|
131 | if (next !== undefined && !/^-/.test(next)
|
132 | && !flags.bools[key]
|
133 | && !flags.allBools
|
134 | && (aliases[key] ? !aliasIsBoolean(key) : true)) {
|
135 | setArg(key, next, arg);
|
136 | i++;
|
137 | }
|
138 | else if (/^(true|false)$/.test(next)) {
|
139 | setArg(key, next === 'true', arg);
|
140 | i++;
|
141 | }
|
142 | else {
|
143 | setArg(key, flags.strings[key] ? '' : true, arg);
|
144 | }
|
145 | }
|
146 | else if (/^-[^-]+/.test(arg)) {
|
147 | var letters = arg.slice(1,-1).split('');
|
148 |
|
149 | var broken = false;
|
150 | for (var j = 0; j < letters.length; j++) {
|
151 | var next = arg.slice(j+2);
|
152 |
|
153 | if (next === '-') {
|
154 | setArg(letters[j], next, arg)
|
155 | continue;
|
156 | }
|
157 |
|
158 | if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
|
159 | setArg(letters[j], next.split('=')[1], arg);
|
160 | broken = true;
|
161 | break;
|
162 | }
|
163 |
|
164 | if (/[A-Za-z]/.test(letters[j])
|
165 | && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
|
166 | setArg(letters[j], next, arg);
|
167 | broken = true;
|
168 | break;
|
169 | }
|
170 |
|
171 | if (letters[j+1] && letters[j+1].match(/\W/)) {
|
172 | setArg(letters[j], arg.slice(j+2), arg);
|
173 | broken = true;
|
174 | break;
|
175 | }
|
176 | else {
|
177 | setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
|
178 | }
|
179 | }
|
180 |
|
181 | var key = arg.slice(-1)[0];
|
182 | if (!broken && key !== '-') {
|
183 | if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
|
184 | && !flags.bools[key]
|
185 | && (aliases[key] ? !aliasIsBoolean(key) : true)) {
|
186 | setArg(key, args[i+1], arg);
|
187 | i++;
|
188 | }
|
189 | else if (args[i+1] && /true|false/.test(args[i+1])) {
|
190 | setArg(key, args[i+1] === 'true', arg);
|
191 | i++;
|
192 | }
|
193 | else {
|
194 | setArg(key, flags.strings[key] ? '' : true, arg);
|
195 | }
|
196 | }
|
197 | }
|
198 | else {
|
199 | if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
|
200 | argv._.push(
|
201 | flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
|
202 | );
|
203 | }
|
204 | if (opts.stopEarly) {
|
205 | argv._.push.apply(argv._, args.slice(i + 1));
|
206 | break;
|
207 | }
|
208 | }
|
209 | }
|
210 |
|
211 | Object.keys(defaults).forEach(function (key) {
|
212 | if (!hasKey(argv, key.split('.'))) {
|
213 | setKey(argv, key.split('.'), defaults[key]);
|
214 |
|
215 | (aliases[key] || []).forEach(function (x) {
|
216 | setKey(argv, x.split('.'), defaults[key]);
|
217 | });
|
218 | }
|
219 | });
|
220 |
|
221 | if (opts['--']) {
|
222 | argv['--'] = new Array();
|
223 | notFlags.forEach(function(key) {
|
224 | argv['--'].push(key);
|
225 | });
|
226 | }
|
227 | else {
|
228 | notFlags.forEach(function(key) {
|
229 | argv._.push(key);
|
230 | });
|
231 | }
|
232 |
|
233 | return argv;
|
234 | };
|
235 |
|
236 | function hasKey (obj, keys) {
|
237 | var o = obj;
|
238 | keys.slice(0,-1).forEach(function (key) {
|
239 | o = (o[key] || {});
|
240 | });
|
241 |
|
242 | var key = keys[keys.length - 1];
|
243 | return key in o;
|
244 | }
|
245 |
|
246 | function isNumber (x) {
|
247 | if (typeof x === 'number') return true;
|
248 | if (/^0x[0-9a-f]+$/i.test(x)) return true;
|
249 | return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
|
250 | }
|
251 | });
|
252 |
|
253 | var minimist = (index && typeof index === 'object' && 'default' in index ? index['default'] : index);
|
254 |
|
255 | var help = "rollup version __VERSION__\n=====================================\n\nUsage: rollup [options] <entry file>\n\nBasic options:\n\n-v, --version Show version number\n-h, --help Show this help message\n-c, --config Use this config file (if argument is used but value\n is unspecified, defaults to rollup.config.js)\n-w, --watch Watch files in bundle and rebuild on changes\n-i, --input Input (alternative to <entry file>)\n-o, --output <output> Output (if absent, prints to stdout)\n-f, --format [es6] Type of output (amd, cjs, es6, iife, umd)\n-e, --external Comma-separate list of module IDs to exclude\n-g, --globals Comma-separate list of `module ID:Global` pairs\n Any module IDs defined here are added to external\n-n, --name Name for UMD export\n-u, --id ID for AMD module (default is anonymous)\n-m, --sourcemap Generate sourcemap (`-m inline` for inline map)\n--no-strict Don't emit a `\"use strict\";` in the generated modules.\n--no-indent Don't indent result\n--environment <values> Settings passed to config file (see example)\n--no-conflict Generate a noConflict method for UMD globals\n--intro Content to insert at top of bundle (inside wrapper)\n--outro Content to insert at end of bundle (inside wrapper)\n--banner Content to insert at top of bundle (outside wrapper)\n--footer Content to insert at end of bundle (outside wrapper)\n\nExamples:\n\n# use settings in config file\nrollup -c\n\n# in config file, process.env.INCLUDE_DEPS === 'true'\n# and process.env.BUILD === 'production'\nrollup -c --environment INCLUDE_DEPS,BUILD:production\n\n# create CommonJS bundle.js from src/main.js\nrollup --format=cjs --output=bundle.js -- src/main.js\n\n# create self-executing IIFE using `window.jQuery`\n# and `window._` as external globals\nrollup -f iife --globals jquery:jQuery,lodash:_ \\\n -i src/app.js -o build/app.js -m build/app.js.map\n\nNotes:\n\n* When piping to stdout, only inline sourcemaps are permitted\n\nFor more information visit https://github.com/rollup/rollup/wiki\n";
|
256 |
|
257 | var version = "0.33.2";
|
258 |
|
259 | var index$1 = createCommonjsModule(function (module) {
|
260 | /*
|
261 | relative require
|
262 | */'use strict';
|
263 |
|
264 | var path = require$$1;
|
265 | var Module = require$$0;
|
266 |
|
267 | var modules = {};
|
268 |
|
269 | var getModule = function(dir) {
|
270 | var rootPath = dir ? path.resolve(dir) : process.cwd();
|
271 | var rootName = path.join(rootPath, '@root');
|
272 | var root = modules[rootName];
|
273 | if (!root) {
|
274 | root = new Module(rootName);
|
275 | root.filename = rootName;
|
276 | root.paths = Module._nodeModulePaths(rootPath);
|
277 | modules[rootName] = root;
|
278 | }
|
279 | return root;
|
280 | };
|
281 |
|
282 | var requireRelative = function(requested, relativeTo) {
|
283 | var root = getModule(relativeTo);
|
284 | return root.require(requested);
|
285 | };
|
286 |
|
287 | requireRelative.resolve = function(requested, relativeTo) {
|
288 | var root = getModule(relativeTo);
|
289 | return Module._resolveFilename(requested, root);
|
290 | };
|
291 |
|
292 | module.exports = requireRelative;
|
293 | });
|
294 |
|
295 | var relative = (index$1 && typeof index$1 === 'object' && 'default' in index$1 ? index$1['default'] : index$1);
|
296 |
|
297 | var index$4 = createCommonjsModule(function (module) {
|
298 | 'use strict';
|
299 | var argv = process.argv;
|
300 |
|
301 | var terminator = argv.indexOf('--');
|
302 | var hasFlag = function (flag) {
|
303 | flag = '--' + flag;
|
304 | var pos = argv.indexOf(flag);
|
305 | return pos !== -1 && (terminator !== -1 ? pos < terminator : true);
|
306 | };
|
307 |
|
308 | module.exports = (function () {
|
309 | if ('FORCE_COLOR' in process.env) {
|
310 | return true;
|
311 | }
|
312 |
|
313 | if (hasFlag('no-color') ||
|
314 | hasFlag('no-colors') ||
|
315 | hasFlag('color=false')) {
|
316 | return false;
|
317 | }
|
318 |
|
319 | if (hasFlag('color') ||
|
320 | hasFlag('colors') ||
|
321 | hasFlag('color=true') ||
|
322 | hasFlag('color=always')) {
|
323 | return true;
|
324 | }
|
325 |
|
326 | if (process.stdout && !process.stdout.isTTY) {
|
327 | return false;
|
328 | }
|
329 |
|
330 | if (process.platform === 'win32') {
|
331 | return true;
|
332 | }
|
333 |
|
334 | if ('COLORTERM' in process.env) {
|
335 | return true;
|
336 | }
|
337 |
|
338 | if (process.env.TERM === 'dumb') {
|
339 | return false;
|
340 | }
|
341 |
|
342 | if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {
|
343 | return true;
|
344 | }
|
345 |
|
346 | return false;
|
347 | })();
|
348 | });
|
349 |
|
350 | var require$$0$1 = (index$4 && typeof index$4 === 'object' && 'default' in index$4 ? index$4['default'] : index$4);
|
351 |
|
352 | var index$6 = createCommonjsModule(function (module) {
|
353 | 'use strict';
|
354 | module.exports = function () {
|
355 | return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;
|
356 | };
|
357 | });
|
358 |
|
359 | var require$$0$2 = (index$6 && typeof index$6 === 'object' && 'default' in index$6 ? index$6['default'] : index$6);
|
360 |
|
361 | var index$5 = createCommonjsModule(function (module) {
|
362 | 'use strict';
|
363 | var ansiRegex = require$$0$2;
|
364 | var re = new RegExp(ansiRegex().source); // remove the `g` flag
|
365 | module.exports = re.test.bind(re);
|
366 | });
|
367 |
|
368 | var require$$1$1 = (index$5 && typeof index$5 === 'object' && 'default' in index$5 ? index$5['default'] : index$5);
|
369 |
|
370 | var index$7 = createCommonjsModule(function (module) {
|
371 | 'use strict';
|
372 | var ansiRegex = require$$0$2();
|
373 |
|
374 | module.exports = function (str) {
|
375 | return typeof str === 'string' ? str.replace(ansiRegex, '') : str;
|
376 | };
|
377 | });
|
378 |
|
379 | var require$$2 = (index$7 && typeof index$7 === 'object' && 'default' in index$7 ? index$7['default'] : index$7);
|
380 |
|
381 | var index$8 = createCommonjsModule(function (module) {
|
382 | 'use strict';
|
383 |
|
384 | function assembleStyles () {
|
385 | var styles = {
|
386 | modifiers: {
|
387 | reset: [0, 0],
|
388 | bold: [1, 22], // 21 isn't widely supported and 22 does the same thing
|
389 | dim: [2, 22],
|
390 | italic: [3, 23],
|
391 | underline: [4, 24],
|
392 | inverse: [7, 27],
|
393 | hidden: [8, 28],
|
394 | strikethrough: [9, 29]
|
395 | },
|
396 | colors: {
|
397 | black: [30, 39],
|
398 | red: [31, 39],
|
399 | green: [32, 39],
|
400 | yellow: [33, 39],
|
401 | blue: [34, 39],
|
402 | magenta: [35, 39],
|
403 | cyan: [36, 39],
|
404 | white: [37, 39],
|
405 | gray: [90, 39]
|
406 | },
|
407 | bgColors: {
|
408 | bgBlack: [40, 49],
|
409 | bgRed: [41, 49],
|
410 | bgGreen: [42, 49],
|
411 | bgYellow: [43, 49],
|
412 | bgBlue: [44, 49],
|
413 | bgMagenta: [45, 49],
|
414 | bgCyan: [46, 49],
|
415 | bgWhite: [47, 49]
|
416 | }
|
417 | };
|
418 |
|
419 | // fix humans
|
420 | styles.colors.grey = styles.colors.gray;
|
421 |
|
422 | Object.keys(styles).forEach(function (groupName) {
|
423 | var group = styles[groupName];
|
424 |
|
425 | Object.keys(group).forEach(function (styleName) {
|
426 | var style = group[styleName];
|
427 |
|
428 | styles[styleName] = group[styleName] = {
|
429 | open: '\u001b[' + style[0] + 'm',
|
430 | close: '\u001b[' + style[1] + 'm'
|
431 | };
|
432 | });
|
433 |
|
434 | Object.defineProperty(styles, groupName, {
|
435 | value: group,
|
436 | enumerable: false
|
437 | });
|
438 | });
|
439 |
|
440 | return styles;
|
441 | }
|
442 |
|
443 | Object.defineProperty(module, 'exports', {
|
444 | enumerable: true,
|
445 | get: assembleStyles
|
446 | });
|
447 | });
|
448 |
|
449 | var require$$3 = (index$8 && typeof index$8 === 'object' && 'default' in index$8 ? index$8['default'] : index$8);
|
450 |
|
451 | var index$9 = createCommonjsModule(function (module) {
|
452 | 'use strict';
|
453 |
|
454 | var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
|
455 |
|
456 | module.exports = function (str) {
|
457 | if (typeof str !== 'string') {
|
458 | throw new TypeError('Expected a string');
|
459 | }
|
460 |
|
461 | return str.replace(matchOperatorsRe, '\\$&');
|
462 | };
|
463 | });
|
464 |
|
465 | var require$$4 = (index$9 && typeof index$9 === 'object' && 'default' in index$9 ? index$9['default'] : index$9);
|
466 |
|
467 | var index$2 = createCommonjsModule(function (module) {
|
468 | 'use strict';
|
469 | var escapeStringRegexp = require$$4;
|
470 | var ansiStyles = require$$3;
|
471 | var stripAnsi = require$$2;
|
472 | var hasAnsi = require$$1$1;
|
473 | var supportsColor = require$$0$1;
|
474 | var defineProps = Object.defineProperties;
|
475 | var isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);
|
476 |
|
477 | function Chalk(options) {
|
478 | // detect mode if not set manually
|
479 | this.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;
|
480 | }
|
481 |
|
482 | // use bright blue on Windows as the normal blue color is illegible
|
483 | if (isSimpleWindowsTerm) {
|
484 | ansiStyles.blue.open = '\u001b[94m';
|
485 | }
|
486 |
|
487 | var styles = (function () {
|
488 | var ret = {};
|
489 |
|
490 | Object.keys(ansiStyles).forEach(function (key) {
|
491 | ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
|
492 |
|
493 | ret[key] = {
|
494 | get: function () {
|
495 | return build.call(this, this._styles.concat(key));
|
496 | }
|
497 | };
|
498 | });
|
499 |
|
500 | return ret;
|
501 | })();
|
502 |
|
503 | var proto = defineProps(function chalk() {}, styles);
|
504 |
|
505 | function build(_styles) {
|
506 | var builder = function () {
|
507 | return applyStyle.apply(builder, arguments);
|
508 | };
|
509 |
|
510 | builder._styles = _styles;
|
511 | builder.enabled = this.enabled;
|
512 | // __proto__ is used because we must return a function, but there is
|
513 | // no way to create a function with a different prototype.
|
514 | /* eslint-disable no-proto */
|
515 | builder.__proto__ = proto;
|
516 |
|
517 | return builder;
|
518 | }
|
519 |
|
520 | function applyStyle() {
|
521 | // support varags, but simply cast to string in case there's only one arg
|
522 | var args = arguments;
|
523 | var argsLen = args.length;
|
524 | var str = argsLen !== 0 && String(arguments[0]);
|
525 |
|
526 | if (argsLen > 1) {
|
527 | // don't slice `arguments`, it prevents v8 optimizations
|
528 | for (var a = 1; a < argsLen; a++) {
|
529 | str += ' ' + args[a];
|
530 | }
|
531 | }
|
532 |
|
533 | if (!this.enabled || !str) {
|
534 | return str;
|
535 | }
|
536 |
|
537 | var nestedStyles = this._styles;
|
538 | var i = nestedStyles.length;
|
539 |
|
540 | // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,
|
541 | // see https://github.com/chalk/chalk/issues/58
|
542 | // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.
|
543 | var originalDim = ansiStyles.dim.open;
|
544 | if (isSimpleWindowsTerm && (nestedStyles.indexOf('gray') !== -1 || nestedStyles.indexOf('grey') !== -1)) {
|
545 | ansiStyles.dim.open = '';
|
546 | }
|
547 |
|
548 | while (i--) {
|
549 | var code = ansiStyles[nestedStyles[i]];
|
550 |
|
551 | // Replace any instances already present with a re-opening code
|
552 | // otherwise only the part of the string until said closing code
|
553 | // will be colored, and the rest will simply be 'plain'.
|
554 | str = code.open + str.replace(code.closeRe, code.open) + code.close;
|
555 | }
|
556 |
|
557 | // Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.
|
558 | ansiStyles.dim.open = originalDim;
|
559 |
|
560 | return str;
|
561 | }
|
562 |
|
563 | function init() {
|
564 | var ret = {};
|
565 |
|
566 | Object.keys(styles).forEach(function (name) {
|
567 | ret[name] = {
|
568 | get: function () {
|
569 | return build.call(this, [name]);
|
570 | }
|
571 | };
|
572 | });
|
573 |
|
574 | return ret;
|
575 | }
|
576 |
|
577 | defineProps(Chalk.prototype, init());
|
578 |
|
579 | module.exports = new Chalk();
|
580 | module.exports.styles = ansiStyles;
|
581 | module.exports.hasColor = hasAnsi;
|
582 | module.exports.stripColor = stripAnsi;
|
583 | module.exports.supportsColor = supportsColor;
|
584 | });
|
585 |
|
586 | var red = index$2.red;
|
587 | var cyan = index$2.cyan;
|
588 | var grey = index$2.grey;
|
589 |
|
590 | function stderr$1 ( msg ) {
|
591 | console.error( msg ); // eslint-disable-line no-console
|
592 | }
|
593 |
|
594 | var handlers = {
|
595 | MISSING_CONFIG: function () {
|
596 | stderr$1( red( 'Config file must export an options object. See https://github.com/rollup/rollup/wiki/Command-Line-Interface#using-a-config-file' ) );
|
597 | },
|
598 |
|
599 | MISSING_EXTERNAL_CONFIG: function (err) {
|
600 | stderr$1( red( ("Could not resolve config file " + (err.config)) ) );
|
601 | },
|
602 |
|
603 | MISSING_INPUT_OPTION: function () {
|
604 | stderr$1( red( 'You must specify an --input (-i) option' ) );
|
605 | },
|
606 |
|
607 | MISSING_OUTPUT_OPTION: function () {
|
608 | stderr$1( red( 'You must specify an --output (-o) option when creating a file with a sourcemap' ) );
|
609 | },
|
610 |
|
611 | MISSING_NAME: function () {
|
612 | stderr$1( red( 'You must supply a name for UMD exports (e.g. `--name myModule`)' ) );
|
613 | },
|
614 |
|
615 | PARSE_ERROR: function (err) {
|
616 | stderr$1( red( ("Error parsing " + (err.file) + ": " + (err.message)) ) );
|
617 | },
|
618 |
|
619 | ONE_AT_A_TIME: function () {
|
620 | stderr$1( red( 'rollup can only bundle one file at a time' ) );
|
621 | },
|
622 |
|
623 | DUPLICATE_IMPORT_OPTIONS: function () {
|
624 | stderr$1( red( 'use --input, or pass input path as argument' ) );
|
625 | },
|
626 |
|
627 | ROLLUP_WATCH_NOT_INSTALLED: function () {
|
628 | stderr$1( red( 'rollup --watch depends on the rollup-watch package, which could not be found. You can install it globally (recommended) with ' ) + cyan( 'npm install -g rollup-watch' ) );
|
629 | },
|
630 |
|
631 | WATCHER_MISSING_INPUT_OR_OUTPUT: function () {
|
632 | stderr$1( red( 'must specify --input and --output when using rollup --watch' ) );
|
633 | }
|
634 | };
|
635 |
|
636 | function handleError ( err, recover ) {
|
637 | var handler = handlers[ err && err.code ];
|
638 |
|
639 | if ( handler ) {
|
640 | handler( err );
|
641 | } else {
|
642 | stderr$1( red( err.message || err ) );
|
643 |
|
644 | if ( err.stack ) {
|
645 | stderr$1( grey( err.stack ) );
|
646 | }
|
647 | }
|
648 |
|
649 | stderr$1( ("Type " + (cyan( 'rollup --help' )) + " for help, or visit https://github.com/rollup/rollup/wiki") );
|
650 |
|
651 | if ( !recover ) process.exit( 1 );
|
652 | }
|
653 |
|
654 | var SOURCEMAPPING_URL = 'sourceMa';
|
655 | SOURCEMAPPING_URL += 'ppingURL';
|
656 |
|
657 | var SOURCEMAPPING_URL$1 = SOURCEMAPPING_URL;
|
658 |
|
659 | var rollup = require( '../dist/rollup.js' ); sourceMapSupport.install();
|
660 |
|
661 | // stderr to stderr to keep `rollup main.js > bundle.js` from breaking
|
662 | var stderr = console.error.bind( console ); // eslint-disable-line no-console
|
663 |
|
664 | function runRollup ( command ) {
|
665 | if ( command._.length > 1 ) {
|
666 | handleError({ code: 'ONE_AT_A_TIME' });
|
667 | }
|
668 |
|
669 | if ( command._.length === 1 ) {
|
670 | if ( command.input ) {
|
671 | handleError({ code: 'DUPLICATE_IMPORT_OPTIONS' });
|
672 | }
|
673 |
|
674 | command.input = command._[0];
|
675 | }
|
676 |
|
677 | if ( command.environment ) {
|
678 | command.environment.split( ',' ).forEach( function (pair) {
|
679 | var index = pair.indexOf( ':' );
|
680 | if ( ~index ) {
|
681 | process.env[ pair.slice( 0, index ) ] = pair.slice( index + 1 );
|
682 | } else {
|
683 | process.env[ pair ] = true;
|
684 | }
|
685 | });
|
686 | }
|
687 |
|
688 | var config = command.config === true ? 'rollup.config.js' : command.config;
|
689 |
|
690 | if ( config ) {
|
691 | if ( config.slice( 0, 5 ) === 'node:' ) {
|
692 | var pkgName = config.slice( 5 );
|
693 | try {
|
694 | config = relative.resolve( ("rollup-config-" + pkgName), process.cwd() );
|
695 | } catch ( err ) {
|
696 | try {
|
697 | config = relative.resolve( pkgName, process.cwd() );
|
698 | } catch ( err ) {
|
699 | if ( err.code === 'MODULE_NOT_FOUND' ) {
|
700 | handleError({ code: 'MISSING_EXTERNAL_CONFIG', config: config });
|
701 | }
|
702 |
|
703 | throw err;
|
704 | }
|
705 | }
|
706 | } else {
|
707 | // find real path of config so it matches what Node provides to callbacks in require.extensions
|
708 | config = fs.realpathSync( config );
|
709 | }
|
710 |
|
711 | rollup.rollup({
|
712 | entry: config,
|
713 | onwarn: function (message) {
|
714 | if ( /Treating .+ as external dependency/.test( message ) ) return;
|
715 | stderr( message );
|
716 | }
|
717 | }).then( function (bundle) {
|
718 | var ref = bundle.generate({
|
719 | format: 'cjs'
|
720 | });
|
721 | var code = ref.code;
|
722 |
|
723 | // temporarily override require
|
724 | var defaultLoader = require.extensions[ '.js' ];
|
725 | require.extensions[ '.js' ] = function ( m, filename ) {
|
726 | if ( filename === config ) {
|
727 | m._compile( code, filename );
|
728 | } else {
|
729 | defaultLoader( m, filename );
|
730 | }
|
731 | };
|
732 |
|
733 | try {
|
734 | var options = require( config );
|
735 | if ( Object.keys( options ).length === 0 ) {
|
736 | handleError({ code: 'MISSING_CONFIG' });
|
737 | }
|
738 | execute( options, command );
|
739 | require.extensions[ '.js' ] = defaultLoader;
|
740 | } catch ( err ) {
|
741 | handleError( err );
|
742 | }
|
743 | })
|
744 | .catch( stderr );
|
745 | } else {
|
746 | execute( {}, command );
|
747 | }
|
748 | }
|
749 |
|
750 | var equivalents = {
|
751 | useStrict: 'useStrict',
|
752 | banner: 'banner',
|
753 | footer: 'footer',
|
754 | format: 'format',
|
755 | globals: 'globals',
|
756 | id: 'moduleId',
|
757 | indent: 'indent',
|
758 | input: 'entry',
|
759 | intro: 'intro',
|
760 | name: 'moduleName',
|
761 | output: 'dest',
|
762 | outro: 'outro',
|
763 | sourcemap: 'sourceMap',
|
764 | treeshake: 'treeshake'
|
765 | };
|
766 |
|
767 | function execute ( options, command ) {
|
768 | var external;
|
769 |
|
770 | var commandExternal = ( command.external || '' ).split( ',' );
|
771 | var optionsExternal = options.external;
|
772 |
|
773 | if ( command.globals ) {
|
774 | var globals = Object.create( null );
|
775 |
|
776 | command.globals.split( ',' ).forEach( function (str) {
|
777 | var names = str.split( ':' );
|
778 | globals[ names[0] ] = names[1];
|
779 |
|
780 | // Add missing Module IDs to external.
|
781 | if ( commandExternal.indexOf( names[0] ) === -1 ) {
|
782 | commandExternal.push( names[0] );
|
783 | }
|
784 | });
|
785 |
|
786 | command.globals = globals;
|
787 | }
|
788 |
|
789 | if ( typeof optionsExternal === 'function' ) {
|
790 | external = function (id) {
|
791 | return optionsExternal( id ) || ~commandExternal.indexOf( id );
|
792 | };
|
793 | } else {
|
794 | external = ( optionsExternal || [] ).concat( commandExternal );
|
795 | }
|
796 |
|
797 | options.onwarn = options.onwarn || stderr;
|
798 |
|
799 | options.external = external;
|
800 |
|
801 | options.noConflict = command.conflict === false;
|
802 | delete command.conflict;
|
803 |
|
804 | // Use any options passed through the CLI as overrides.
|
805 | Object.keys( equivalents ).forEach( function (cliOption) {
|
806 | if ( command.hasOwnProperty( cliOption ) ) {
|
807 | options[ equivalents[ cliOption ] ] = command[ cliOption ];
|
808 | }
|
809 | });
|
810 |
|
811 | try {
|
812 | if ( command.watch ) {
|
813 | if ( !options.entry || ( !options.dest && !options.targets ) ) {
|
814 | handleError({ code: 'WATCHER_MISSING_INPUT_OR_OUTPUT' });
|
815 | }
|
816 |
|
817 | try {
|
818 | var watch = relative( 'rollup-watch', process.cwd() );
|
819 | var watcher = watch( rollup, options );
|
820 |
|
821 | watcher.on( 'event', function (event) {
|
822 | switch ( event.code ) {
|
823 | case 'STARTING':
|
824 | stderr( 'checking rollup-watch version...' );
|
825 | break;
|
826 |
|
827 | case 'BUILD_START':
|
828 | stderr( 'bundling...' );
|
829 | break;
|
830 |
|
831 | case 'BUILD_END':
|
832 | stderr( 'bundled in ' + event.duration + 'ms. Watching for changes...' );
|
833 | break;
|
834 |
|
835 | case 'ERROR':
|
836 | handleError( event.error, true );
|
837 | break;
|
838 |
|
839 | default:
|
840 | stderr( 'unknown event', event );
|
841 | }
|
842 | });
|
843 | } catch ( err ) {
|
844 | if ( err.code === 'MODULE_NOT_FOUND' ) {
|
845 | err.code = 'ROLLUP_WATCH_NOT_INSTALLED';
|
846 | }
|
847 |
|
848 | handleError( err );
|
849 | }
|
850 | } else {
|
851 | bundle( options ).catch( handleError );
|
852 | }
|
853 | } catch ( err ) {
|
854 | handleError( err );
|
855 | }
|
856 | }
|
857 |
|
858 | function clone ( object ) {
|
859 | return assign( {}, object );
|
860 | }
|
861 |
|
862 | function assign ( target, source ) {
|
863 | Object.keys( source ).forEach( function (key) {
|
864 | target[ key ] = source[ key ];
|
865 | });
|
866 | return target;
|
867 | }
|
868 |
|
869 | function bundle ( options ) {
|
870 | if ( !options.entry ) {
|
871 | handleError({ code: 'MISSING_INPUT_OPTION' });
|
872 | }
|
873 |
|
874 | return rollup.rollup( options ).then( function (bundle) {
|
875 | if ( options.dest ) {
|
876 | return bundle.write( options );
|
877 | }
|
878 |
|
879 | if ( options.targets ) {
|
880 | var result = null;
|
881 |
|
882 | options.targets.forEach( function (target) {
|
883 | result = bundle.write( assign( clone( options ), target ) );
|
884 | });
|
885 |
|
886 | return result;
|
887 | }
|
888 |
|
889 | if ( options.sourceMap && options.sourceMap !== 'inline' ) {
|
890 | handleError({ code: 'MISSING_OUTPUT_OPTION' });
|
891 | }
|
892 |
|
893 | var ref = bundle.generate( options );
|
894 | var code = ref.code;
|
895 | var map = ref.map;
|
896 |
|
897 | if ( options.sourceMap === 'inline' ) {
|
898 | code += "\n//# " + SOURCEMAPPING_URL$1 + "=" + (map.toUrl());
|
899 | }
|
900 |
|
901 | process.stdout.write( code );
|
902 | });
|
903 | }
|
904 |
|
905 | var command = minimist( process.argv.slice( 2 ), {
|
906 | alias: {
|
907 | // Aliases
|
908 | strict: 'useStrict',
|
909 |
|
910 | // Short options
|
911 | c: 'config',
|
912 | d: 'indent',
|
913 | e: 'external',
|
914 | f: 'format',
|
915 | g: 'globals',
|
916 | h: 'help',
|
917 | i: 'input',
|
918 | m: 'sourcemap',
|
919 | n: 'name',
|
920 | o: 'output',
|
921 | u: 'id',
|
922 | v: 'version',
|
923 | w: 'watch'
|
924 | }
|
925 | });
|
926 |
|
927 | if ( command.help || ( process.argv.length <= 2 && process.stdin.isTTY ) ) {
|
928 | console.log( ("\n" + (help.replace('__VERSION__', version)) + "\n") ); // eslint-disable-line no-console
|
929 | }
|
930 |
|
931 | else if ( command.version ) {
|
932 | console.log( ("rollup version " + version) ); // eslint-disable-line no-console
|
933 | }
|
934 |
|
935 | else {
|
936 | runRollup( command );
|
937 | } |
\ | No newline at end of file |