创建自定义全局命令
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)('内容'));