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 |
|
8 | process.title = 'ionic';
|
9 | process.on('unhandledRejection', function(r) { process.stderr.write(String(r)); process.exit(1); });
|
10 |
|
11 | var events = require('events');
|
12 | var path = require('path');
|
13 | var evt = new events.EventEmitter();
|
14 |
|
15 | var cli;
|
16 |
|
17 | process.on('message', function(msg) {
|
18 | evt.once('ready', function() {
|
19 | cli.receive(msg);
|
20 | });
|
21 | });
|
22 |
|
23 | var semver = require('semver');
|
24 | var version = semver.parse(process.version);
|
25 | var minversion = 'v10.3.0';
|
26 |
|
27 | if (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 |
|
38 | if (process.argv.includes('--verbose')) {
|
39 | process.env.DEBUG = '*';
|
40 | }
|
41 |
|
42 | if (process.argv.includes('--no-color')) {
|
43 | process.env.DEBUG_COLORS = '0';
|
44 | }
|
45 |
|
46 | var pargv = process.argv.slice(2);
|
47 | var lib = path.resolve(__dirname, '..');
|
48 |
|
49 | process.env.IONIC_CLI_BIN = __filename;
|
50 | process.env.IONIC_CLI_LIB = lib;
|
51 |
|
52 | var bootstrap = require(path.resolve(lib, 'bootstrap'));
|
53 |
|
54 | bootstrap.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 | });
|