qb-clio
Version:
qb-cli 脚手架,仅有vue模板
41 lines (35 loc) • 1.07 kB
JavaScript
const { program } = require('commander')
const { resolve } = require('path')
const chalk = require('chalk')
const res = (command) => resolve(__dirname, '../src/', command) // 读取脚本路径
const version = require('../package.json').version
program.version(version, '-v, --version') // 执行qb-cli -v 或 qb-cli --version的时候输出当前版本号
let actionMap = {
init: {
description: 'init a project',
examples: [
'qb-cli init <project-name>',
],
},
}
Object.keys(actionMap).forEach((action) => {
program
.command(action)
.description(actionMap[action].description)
.action(() => {
require(res(action))
})
})
function help() {
console.log('\r\nExamples:')
Object.keys(actionMap).forEach((action) => {
actionMap[action].examples.forEach((item) => {
console.log(chalk.green(` -> ${item}`));
})
})
console.log('\r')
}
program.on('-h', help)
program.on('--help', help)
program.parse(process.argv);