為什么搭建腳手架腳手架的作用不多贅述,廢話不多說
1.自定義全局命令
創(chuàng)建項目文件 mycli
npm init
根目錄創(chuàng)建bin目錄,bin目錄下新建 cli.js
cli.js加上這句話.從環(huán)境變量獲取node,畢竟大家安裝的位置不一樣
#! /usr/bin/env node
修改package.json
"bin": {
"mycli": "bin/cli.js"
},
命令全局化掛起
npm link
//原生處理命令,輸入下面代碼測試
mycli --help
console.log(process.argv)
得到結(jié)果
[
'C:\\Program Files\\nodejs\\node.exe',
'C:\\Users\\admin\\AppData\\Roaming\\npm\\node_modules\\mycli\\bin\\cli.js',
'--help'
]
//由此看出我們可以通過下面代碼來設(shè)置指令,比如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('創(chuàng)建')
.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.下載遠(yuǎn)程倉庫模板代碼-download-git-repo插件
官方地址:https://www.npmjs.com/package/download-git-repo
安裝
npm install download-git-repo
使用
//我的是github倉庫, 使用ssh方式
//zycxwd/serverblog 用戶名/倉庫名
//傳參的 project是變量,對應(yīng)創(chuàng)建的文件名稱
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點進(jìn)去看就是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!'));