#!/usr/bin/env node const { program } = require('commander'); // 命令行提示工具 const chalk = require('chalk'); // 终端输出颜色变化 const inquirer = require('inquirer'); // 交互选项 const ora = require('ora'); // loading效果 const spinner = ora('Loading unicorns').start(); // 注意要使用x几版本因为不支持 const figlet = require('figlet'); // 生成艺术字 figlet('Hello World!!', function (err, data) { if (err) { console.log('Something went wrong...'); console.dir(err); return; } console.log(data); }); figlet.text( 'Boo!', { font: 'Ghost', horizontalLayout: 'default', verticalLayout: 'default', width: 80, whitespaceBreak: true, }, function (err, data) { if (err) { console.log('Something went wrong...'); console.dir(err); return; } console.log(data); }, ); console.log( figlet.textSync('Boo!', { font: 'Ghost', horizontalLayout: 'default', verticalLayout: 'default', width: 80, whitespaceBreak: true, }), ); setTimeout(() => { spinner.color = 'red'; spinner.text = '网络较慢,请稍后...'; }, 1000); setTimeout(() => { spinner.succeed('下载成功!!!'); }, 2000); setTimeout(() => { spinner.fail('下载失败!!!'); }, 3000); inquirer .prompt([ /* Pass your questions in here */ { type: 'input', name: 'food', message: '你吃什么', default: '包子' }, { type: 'input', name: 'food', message: '吃辣吗?', default: '微辣' }, ]) .then(answers => { // Use user feedback for... whatever!! console.log(answers); }) .catch(error => { if (error.isTtyError) { // Prompt couldn't be rendered in the current environment } else { // Something else went wrong } }); console.log(chalk.red('文字颜色')); program.name('bunny-cli').usage(' [options]'); program .option('-d, --debug', 'output extra debugging') .option('-s, --small', 'small pizza size') .option('-p, --pizza-type ', 'flavour of pizza'); program .command('clone [destination]') .description('clone a repository into a newly created directory') .action((source, destination) => { console.log(source, destination); }); program.parse(process.argv); const options = program.opts(); console.log(options);