const program = require('commander');
program
.version(require('../package').version)
.option('-t, --test', 'Add unit test for components')
.usage('<command> [options]')
.command('-init', 'Generate a new project')
.parse(process.argv);download(template, name, {clone: false}, err => {
if (err) {
logger.fatal("download template [" + template + "] error ");
}
generate(name, template, to, err => {
if (err) {
logger.fatal(err);
} else {
console.log()
logger.success('Generated "%s".', name)
}
})
})需要使用node的path对象,path对象中有一个relation的方法
path.relation('../', process.pwd());需要使用git命令,要用到node的child_process提供衍生子进程的功能
const exec = require('child_process').execSync
module.exports = () => {
let name
let email
try {
name = exec('git config --get user.name')
email = exec('git config --get user.email')
} catch (e) {}
name = name && JSON.stringify(name.toString().trim()).slice(1, -1)
email = email && (' <' + email.toString().trim() + '>')
return (name || '') + (email || '')
}