从0搭建脚手架

118 阅读1分钟

创建自定义全局命令

1.先创建一个 bin 文件夹 2.bin 外面 npm init page 里面就会出现一个

{
    "bin": {
        "innovation_cli": "bin/cli.js"
    }
}

将"innovation_cli"命令指定到"bin/cli.js"这个文件下面

3.code下面执行 npm link 4. cli.js

//环境变量下的node
#! /usr/bin/env node

5.命令行的交互参数 process.argv['使用什么脚本执行代码','代码的文件路径','innovation_cli命令--后面的参数']

if(process.argv[2] == "--help"){
    console.log('获取带');
}

但是过于原始,使用commander工具

commander

npm i commander
const { program } = require("commander");
// command:会自动加入--help里面
// create命令 <项目名字> 后面的参数   alias(别名)
program
.command('create <project> [other...]')
.alias('crt')
.description('创建项目') //指令说明
.action((project,args) => { //操作
    // project:项目名字
    // args:[other...]
})


// <framwork>:<>里面必选
program.option('-f --framwork <framwork>','设置框架')
// parse(命令行里面的所有参数选项)
program.parse(process.argv)

命令行问答交互工具 inquirer

npm i inquirer@8.0.0
对象:{
       type:'input',//用户可以输入
    name:'username',//用户输入的答案对象的key值
    message:'你的名字',//问题 
}
{
                type: "list",//选择
            name: "framwork",
            choices: framwork,//选择类容
            message: "请选择需要使用的框架",
}
inquirer.prompt([你要问的各种问题,用对象表示,一个对象一个问题])
.then((answer) => {
    console.log(answer);
})

下载远程仓库

npm i download-git-repo
const download = require('download-git-repo')
//github可以不用加direct
download('direct:远程仓库地址','代码下载路径',{clone:true}下载方式,(err) => {报错提示})

命令行等待工具 ora npm install ora@5

const ora = require('ora')
const spinner = ora().start()
spinner.color = 'yellow';
spinner.text = 'loading...'
setTimeout(() => {
    // spinner.succeed('创建成功')
    // spinner.fail('创建失败')
    spinner.info('创建信息')
}, 2000);

命令行渲染工具 chalk npm i chalk@4

const chalk = require('chalk')
console.log(chalk.red('内容'));
console.log(chalk.blue('内容'));
console.log(chalk.bold.yellow('内容'));
console.log(chalk.rgb(255,60,90)('内容'));