sth-cli
Version:
stonehg vue cli
58 lines (47 loc) • 1.71 kB
JavaScript
const program = require('commander')
const create = require('../lib/create')
const chalk = require('chalk');
const figlet = require('figlet')
const updater = require('pkg-updater');
const pkg = require('../package.json');
updater({
'pkg': pkg,
'registry': 'https://www.npmjs.com/package/sth-cli', // custom registry
'tag': 'next', // custom the check tag(default is latest)
'checkInterval': 24 * 60 * 60 * 1000, // custom the check interval(ms)
'level': 'patch'
}).then(() => {
program
//定义命令和参数
.command('create <app-name>')
//描述信息
.description('create a new project')
//-f --force 强制创建,如果创建的目录存在则直接覆盖
.option('-f,--force', 'overwrite target directory if it exist')
//回调方法
.action((name, options) => {
// console.log(name, options);
create(name, options)
})
program
.version(`v${require('../package.json').version}`)
.usage('<command> [option]')
program
// 监听 --help 执行
.on('--help', () => {
// 使用 figlet 绘制 Logo
console.log('\r\n' + figlet.textSync('STONEHG', {
font: 'Ghost',
horizontalLayout: 'default',
verticalLayout: 'default',
width: 80,
whitespaceBreak: true
}));
// 新增说明信息
console.log(`\r\nRun ${chalk.cyan(`st <command> --help`)} for detailed usage of given command\r\n`)
})
//解析用户执行命令行传入参数
program
.parse(process.argv)
});