注意:
- 脚手架不是前端项目而是一个nodejs项目
- 使用node开发命令行工具所执行的 javascript 脚本必须在顶部加入#!/usr/bin/env node 声明
一、脚手架开发流程
- 创建空项目/文件夹
- 通过npm/yarn初始化package文件
- 安装所需插件
- 创建bin目录
- 开发命令行
二、所需插件介绍
1.commander
- 说明:命令行插件
- 文档地址:www.npmjs.com/package/com…
- 使用方法:(注意版本)
const { program } = require('commander');
program
.option('--first')
.option('-s, --separator <char>');
program.parse();
const options = program.opts();
const limit = options.first ? 1 : undefined;
console.log(program.args[0].split(options.separator, limit));
2. figlet
- 说明:大型字符-终端打印大型文字
- 文档地址:www.npmjs.com/package/com…
- 使用方法:
var figlet = require("figlet");
figlet("Hello World!!", function (err, data) {
if (err) {
console.log("Something went wrong...");
console.dir(err);
return;
}
console.log(data);
});
3.inquirer
- 说明:命令行参数输入交互
- 文档地址:www.npmjs.com/package/inq…
- 使用方法:
import inquirer from 'inquirer';
inquirer
.prompt([
/* Pass your questions in here */
])
.then((answers) => {
// Use user feedback for... whatever!!
})
.catch((error) => {
if (error.isTtyError) {
// Prompt couldn't be rendered in the current environment
} else {
// Something else went wrong
}
});
4.chalk
- 说明:彩色文字-美化终端字符显示
- 文档地址:www.npmjs.com/package/cha…
- 使用方法:
import chalk from 'chalk';
console.log(chalk.blue('Hello world!'));
5.ora
- 说明:loading效果
- 文档地址:www.npmjs.com/package/ora
- 使用方法:
import ora from 'ora';
const spinner = ora('Loading unicorns').start();
setTimeout(() => {
spinner.color = 'yellow';
spinner.text = 'Loading rainbows';
}, 1000);
6.download-git-repo
- 说明:仓库下载
- 文档地址:www.npmjs.com/package/dow…
- 使用方法:
download('flippidippi/download-git-repo-fixture', 'test/tmp', function (err) {
console.log(err ? 'Error' : 'Success')
})
下面是我的测试脚手架demo 源码地址,可供参考 github.com/echo4353/kr…