开发自己的第一个脚手架项目

100 阅读1分钟

注意:

  • 脚手架不是前端项目而是一个nodejs项目
  • 使用node开发命令行工具所执行的 javascript 脚本必须在顶部加入#!/usr/bin/env node 声明

一、脚手架开发流程

  1. 创建空项目/文件夹
  2. 通过npm/yarn初始化package文件
  3. 安装所需插件
  4. 创建bin目录
  5. 开发命令行

二、所需插件介绍

1.commander

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

var figlet = require("figlet");

figlet("Hello World!!", function (err, data) {
  if (err) {
    console.log("Something went wrong...");
    console.dir(err);
    return;
  }
  console.log(data);
});

image.png

3.inquirer

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
    }
  });

image.png

4.chalk

import chalk from 'chalk';

console.log(chalk.blue('Hello world!'));

image.png

5.ora

import ora from 'ora';

const spinner = ora('Loading unicorns').start();

setTimeout(() => {
	spinner.color = 'yellow';
	spinner.text = 'Loading rainbows';
}, 1000);

image.png

6.download-git-repo

download('flippidippi/download-git-repo-fixture''test/tmp'function (err) {
  console.log(err ? 'Error' : 'Success')
})

下面是我的测试脚手架demo 源码地址,可供参考 github.com/echo4353/kr…