UNPKG

1.8 kBPlain TextView Raw
1#!/usr/bin/env node
2
3'use strict';
4
5// IMPORTANT: This file uses ES5 syntax to avoid syntax errors in older Node
6// versions (mostly 0.12). See https://node.green for syntax support.
7
8process.title = 'ionic';
9process.on('unhandledRejection', function(r) { process.stderr.write(String(r)); process.exit(1); });
10
11var events = require('events');
12var path = require('path');
13var evt = new events.EventEmitter();
14
15var cli;
16
17process.on('message', function(msg) {
18 evt.once('ready', function() {
19 cli.receive(msg);
20 });
21});
22
23var semver = require('semver');
24var version = semver.parse(process.version);
25var minversion = 'v10.3.0';
26
27if (semver.lt(version, minversion)) {
28 var details = version.major === 6
29 ? ' Node.js 6 reached end-of-life on 2019-04-30 and is no longer supported.'
30 : version.major === 8
31 ? ' Node.js 8 reached end-of-life on 2019-12-31 and is no longer supported.'
32 : '';
33
34 process.stderr.write('ERR: Your Node.js version is ' + version.raw + '.' + details + ' Please update to the latest Node LTS version.\n');
35 process.exit(1);
36}
37
38if (process.argv.includes('--verbose')) {
39 process.env.DEBUG = '*';
40}
41
42if (process.argv.includes('--no-color')) {
43 process.env.DEBUG_COLORS = '0';
44}
45
46var pargv = process.argv.slice(2);
47var lib = path.resolve(__dirname, '..');
48
49process.env.IONIC_CLI_BIN = __filename;
50process.env.IONIC_CLI_LIB = lib;
51
52var bootstrap = require(path.resolve(lib, 'bootstrap'));
53
54bootstrap.detectLocalCLI()
55 .then(function(localPath) {
56 cli = require(localPath);
57 return cli.run(pargv, process.env);
58 }, function(err) {
59 cli = require(lib);
60
61 if (typeof err !== 'string') {
62 throw err;
63 }
64
65 process.env.IONIC_CLI_LOCAL_ERROR = err;
66
67 return cli.run(pargv, process.env);
68 })
69 .then(function() {
70 evt.emit('ready');
71 });