yst-react-cli
Version:
44 lines (34 loc) • 1.48 kB
JavaScript
;
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var program = require('commander');
var _require = require('./constants'),
version = _require.version,
mapActions = _require.mapActions; // 获取version
var _require2 = require('path'),
resolve = _require2.resolve;
// 创建命令
Reflect.ownKeys(mapActions).forEach(function (action) {
var alias = mapActions[action].alias;
var description = mapActions[action].description;
// 创建命令、命令别名、描述、
program.command(action).alias(alias).description(description).action(function () {
// 访问找不到的命令就打印找不命令
if (action === '*') {
console.log(mapActions[action].description);
} else {
// 导入命令对应文件
require(resolve(__dirname, action)).apply(undefined, _toConsumableArray(process.argv.slice(-1)));
}
});
});
// 监听--help,输出命令列表的examples
program.on('--help', function () {
console.log('\nExamples:');
Reflect.ownKeys(mapActions).forEach(function (action) {
mapActions[action].examples.forEach(function (exp) {
console.log(exp);
});
});
});
// process.argv 是用户输入命令行冲传入的参数
program.version(version).parse(process.argv);