star_wuhaosheng
Version:
84 lines (80 loc) • 2.64 kB
JavaScript
const { program } = require('commander')
const {inquirer}=require('inquirer')
const axios=require('axios')
const fs=require('fs')
// const { userInfo } = require('os')
program.action(()=>{
console.log('顶层命令')
})
//创建一个 `display` 子命令,实现显示目录下的所有文件信息
program.command('display [dir]')
.option('-r','是否递归显示子级目录',false)
.option('-i','要忽略显示的目录名,支持传入多个目录名')
.action((dir,cmd)=>{
const absolutePath=dir||process.cwd
dispalyFile(absolutePath,cmd['-r'],cmd['-i'].split(''))
})
//创建一个 `user` 子命令,实现用户信息收集功能
const question=[
{
type:'input',
name:'userName',
message:'用户名'
},
{
type:'password',
name:'pwd',
message:'密码'
},
{
type:'input',
name:'email',
message:'请输入邮箱',
validate:function(value,proAnswer){
let pass=value.match(/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/)
if(pass){
return true
}
return '请输入正确的邮箱'
}
},
{
typeL:'input',
name:'phone',
message:'请输入手机号',
validate:function(value,proAnswer){
let pass=value.match(/^[1][3,4,5,7,8][0-9]{9}$/)
if(pass){
return true
}
return '请输入正确的手机号'
}
}
]
program.command('user').action(()=>{
inquirer.prompt(question).then((answer)=>{
console.log(answer)
})
})
//创建一个 `view` 子命令,实现查询历史上今天的功能
program.command('views').action(()=>{
axios.get('http://api.juheapi.com/japi/toh?key=70f6b825f8356b64c8dfb33438c0fdd1&v=1.0&month=11&day=01').then(res=>{
console.log(res.data)
})
})
program.parse(process.argv);
function dispalyFile(absolute,isRecuse,igriorge){
const arr=fs.readdirSync(absolute)
arr.forEach((item)=>{
const suabsoulte=absolute+'/'+item
const res=fs.statSync(suabsoulte)
if(res.isFile()){
console.log(`${suabsoulte}文件大小是${res.size}`)
return
}
if(isRecuse&& !igriorge.includes(item)){
dispalyFile(suabsoulte,isRecuse,igriorge)
}
})
}