forked from angular/angular-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathng
More file actions
executable file
·87 lines (72 loc) · 2.54 KB
/
ng
File metadata and controls
executable file
·87 lines (72 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env node
'use strict';
// Provide a title to the process in `ps`
process.title = 'angular-cli';
const resolve = require('resolve');
const packageJson = require('../package.json');
const Version = require('../upgrade/version').Version;
const yellow = require('chalk').yellow;
const SemVer = require('semver').SemVer;
const fs = require('fs');
const path = require('path');
function _fromPackageJson(cwd) {
cwd = cwd || process.cwd();
do {
const packageJsonPath = path.join(cwd, 'node_modules/angular-cli/package.json');
if (fs.existsSync(packageJsonPath)) {
const content = fs.readFileSync(packageJsonPath, 'utf-8');
if (content) {
const json = JSON.parse(content);
if (json['version']) {
return new SemVer(json['version']);
}
}
}
// Check the parent.
cwd = path.dirname(cwd);
} while (cwd != path.dirname(cwd));
return null;
}
resolve('angular-cli', { basedir: process.cwd() },
function (error, projectLocalCli) {
var cli;
if (error) {
// If there is an error, resolve could not find the ng-cli
// library from a package.json. Instead, include it from a relative
// path to this script file (which is likely a globally installed
// npm package). Most common cause for hitting this is `ng new`
cli = require('../lib/cli');
} else {
// Verify that package's version.
Version.assertPostWebpackVersion();
// This was run from a global, check local version.
const globalVersion = new SemVer(packageJson['version']);
let localVersion;
let shouldWarn = false;
try {
localVersion = _fromPackageJson();
shouldWarn = localVersion && globalVersion.compare(localVersion) < 0;
} catch (e) {
console.error(e);
shouldWarn = true;
}
if (shouldWarn) {
// eslint-disable no-console
console.log(yellow(`Your global Angular CLI version (${globalVersion}) is greater than `
+ `your local version (${localVersion}). The local Angular CLI version is used.`));
}
// No error implies a projectLocalCli, which will load whatever
// version of ng-cli you have installed in a local package.json
cli = require(projectLocalCli);
}
if ('default' in cli) {
cli = cli['default'];
}
cli({
cliArgs: process.argv.slice(2),
inputStream: process.stdin,
outputStream: process.stdout
}).then(function (result) {
process.exit(typeof result === 'object' ? result.exitCode : result);
});
});