搭建前端脚手架

//后台脚手架
let program = require('commander');
let { promisify } = require('util');
let asyncFiglet = promisify(require('figlet'));
let inquirer = require('inquirer');
let init = require('./init');
// let { chalk } = require('chalk');
// import chalk from 'chalk';
//日志打印
const log = (content) => {
    console.log(content);
};

program.version('1.0.0');
program.option('-n --name <type>', 'output name');

//打印logo
async function printLogo() {
    let data = await asyncFiglet('v-cli');
    log(data);
};

program
    .command('create <app-name>')
    .description('创建Vue项目')
    .action(async(name) => {
        await printLogo();
        log('准备创建项目...');
        let answer = await inquirer.prompt([{
            name: 'language',
            type: 'list',
            message: '请选择语音版本',
            choices: ['javascript', 'typescript'],
        }])
        if (answer.language === 'javascript') {
            log('choose js will download')
            init(name);
        } else {
            log('期待中');
        }
    })

//参数解析,放到最后
program.parse(process.argv);
//项目克隆 init.js
let { promisify } = require('util');
let download = promisify(require('download-git-repo'));
const shell = require('shelljs');

const log = (content) => {
    console.log(content);
};

module.exports = async(appName) => {
    log(`创建项目${appName}`);
    shell.rm("-rf", appName);
    log('loading...');
    try {
        await download('direct:https://github.com/xiezhu/xxx.git', appName, { clone: true });
        log(`
        下载完成请执行以下命令启动项目:
        =====
        cd ${appName}
        npm install
        npm run dev`)
    } catch (err) {
        log('下载失败', err)
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值