实现一个脚手架,通常会用到以下依赖包
1# 安装commander
2npm install commander
3
4# 安装chalk
5npm install chalk@4
6
7# 安装inquirer
8npm install --save inquirer@^8.0.0
9
10# 安装ora
11npm install ora@5
12
13# 安装figlet
14npm install figlet
15
16# 安装
17npm install fs-extra
1const { program } = require("commander");
2
3// 设置命令行应用程序的名称以及如何被使用的概述
4program.name("dormant-cli").usage("<command> [options]");
5
6// 配置options
7program.option("-v, --version", "版本");
8program.option("-h, --help", "帮助");
9
10// 配置command
11program
12 .command("clone <source> [destination]")
13 .description("将存储库克隆到新创建的目录中")
14 .action((source, destination) => {
15 console.log("source", source);
16 console.log("destination", destination);
17 });
18
19// 解析命令行参数
20program.parse(process.argv);
21const options = program.opts();
22console.log("options", options);
1const chalk = require('chalk')
2console.log(chalk.yellow('我是dormant-cli脚手架'))
1const inquirer = require("inquirer");
2
3inquirer
4 .prompt([
5 /* Pass your questions in here */
6 {
7 type: "input",
8 name: "name",
9 message: "你叫什么名字?",
10 default: "codebetter",
11 },
12 ])
13 .then((answers) => {
14 // Use user feedback for... whatever!!
15 console.log(answers);
16 })
17 .catch((error) => {
18 if (error.isTtyError) {
19 // Prompt couldn't be rendered in the current environment
20 } else {
21 // Something else went wrong
22 }
23 });
1#!/usr/bin/env node
2const ora = require("ora");
3const spinner = ora("安装中...").start();
4
5setTimeout(() => {
6 spinner.color = "red";
7 spinner.text = "网络较慢,请稍等...";
8}, 1000);
9
10setTimeout(() => {
11 spinner.succeed("安装成功!");
12 spinner.fail("安装失败!");
13}, 3000);
1const figlet = require("figlet");
2
3figlet("dormant-cli", function (err, data) {
4 if (err) {
5 console.log("Something went wrong...");
6 console.dir(err);
7 return;
8 }
9 console.log(data);
10});
:::