为什么搭建脚手架脚手架的作用不多赘述,废话不多说
1.自定义全局命令
创建项目文件 mycli
npm init
根目录创建bin目录,bin目录下新建 cli.js
cli.js加上这句话.从环境变量获取node,毕竟大家安装的位置不一样
#! /usr/bin/env node
修改package.json
"bin": {
"mycli": "bin/cli.js"
},
命令全局化挂起
npm link
//原生处理命令,输入下面代码测试
mycli --help
console.log(process.argv)
得到结果
[
'C:\\Program Files\\nodejs\\node.exe',
'C:\\Users\\admin\\AppData\\Roaming\\npm\\node_modules\\mycli\\bin\\cli.js',
'--help'
]
//由此看出我们可以通过下面代码来设置指令,比如help
if process.argv[2] == '--help' dosomething
2.处理自定义全局指令-commander插件
中文地址:https://github.com/tj/commander.js/blob/HEAD/Readme_zh-CN.md#%e5%ae%89%e8%a3%85
官方提供的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));
脚手架项目代码commander,后面要模块化拆分,这里是个使用的方法
项目搭建完会把代码放到github
const { program } = require('commander')
program.option('-l --look <look>', '查看')
program
.command('creat <project> [arrs...]')
.alias('crt')
.description('创建')
.action((project, args) => {
console.log(project)
console.log(args)
})
program.parse(process.argv)
3命令行问答交互-inquirer插件
安装
//npm install --save inquirer//这会安装最新版 不支持require
//使用require方式安装
npm install --save inquirer@^8.0.0
官方地址:https://www.npmjs.com/package/inquirer
官方使用案例
//import inquirer from 'inquirer'; // 9.x版本支持import这样引入
const inquirer = require('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
}
});
4.下载远程仓库模板代码-download-git-repo插件
官方地址:https://www.npmjs.com/package/download-git-repo
安装
npm install download-git-repo
使用
//我的是github仓库, 使用ssh方式
//zycxwd/serverblog 用户名/仓库名
//传参的 project是变量,对应创建的文件名称
const download = require('download-git-repo')
download('github:zycxwd/serveblog', project, function (err) {
console.log(err ? 'Error:' : 'Success:')
})
5.命令行下载等待loading动画提示--ora插件
官方地址:https://www.npmjs.com/package/ora/v/5.4.1
安装
可以看到目前6版本都是import安装,
教大家一个方法我常用的就是
找到versions看到下看下载最多的,直接就能看到下载最多有700多w次的5.x点进去看就是require方式
所以直接安装5版本
npm install ora@5
使用
//官方案例
const ora = require('ora');
const spinner = ora('Loading unicorns').start();
setTimeout(() => {
spinner.color = 'yellow';
spinner.text = 'Loading rainbows';
}, 1000);
//项目中使用
const spinner = ora('Loading unicorns').start()
spinner.text = '下载中,请等待...'
download('github:zycxwd/serveblog', project, function (err) {
if (!err) {
spinner.succeed('下载成功!')
return
}
spinner.fail(err)
})
6.命令行美化--chalk插件
安装
同ora一样,我们看到新版本是import方式,找打versinos找下载最多的看到是4.x,并且看到确实是require方式就用它就好了
npm i chalk@4.1.2
使用
const chalk = require('chalk');
console.log(chalk.blue('Hello world!'));