-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcli.js
executable file
·47 lines (41 loc) · 1.26 KB
/
cli.js
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
#!/usr/bin/env node
var findComponentFiles = require('./index');
var program = require('commander');
program
.usage('[options] <directory>')
.option('-s, --style [short, long, none]', 'define alias style for require paths', 'short')
.option('-j, --json', 'write out as json')
.parse(process.argv);
if (program.args.length <= 0) {
console.log(program.help());
return;
}
var dir = program.args[0];
var style = program.style;
var result = findComponentFiles(dir, style);
if (program.json) {
console.log(result);
return;
}
var dependencies = result.dependencies;
var hasForks = false;
for (var name in dependencies) {
var meta = dependencies[name];
if (meta.forks.length > 1) {
hasForks = true;
console.log('multiple versions found for "' + name + '"');
console.log(' ' + meta.forks.join(','));
}
}
if (hasForks) {
console.log('you should consider to dedupe your dependencies');
}
if (result.conflicts != null) {
console.log('name clashes found, long require style will be used for these:');
result.conflicts.forEach(function(item) {
var conflict = item.user.map(function(i){return i + '/' + item.repo});
console.log(' ' + conflict.join('\n '));
});
}
console.log('');
console.log(result.command);