(一)命令行工具需要的几个要点
1. node 环境
2. commander ------ 用于定义命令 (一个 commander 包)
3. inquirer ------- 用于和用户交互 (比如五颜六色的命令行)
(二)搭建脚手架工具的流程
1. 编写脚手架工具项目
2. 配置 package.json
3. 发布到 npm (本地测试可以用 npm link)
4. 运行命令
5. 解析命令
6. 下载模板 (根据解析的命令下载模板)
(三)实例来一个
脚手架~
1. 先使用 搭建项目
安装各种依赖
npm init -y
npm i commander --save
npm i inquirer --save
2. 配置 package.json
(1)创建 index.js
(2)定义指令 cli ,当命令行输入 cli 回车,执行 index.js
"bin": {
"codelint": "index.js"
},
(3)注册指令
执行:
npm link
npm link 的作用 :在本地开发npm模块的时候,我们可以使用npm link命令,将 npm 模块链接到对应的运行项目中去,方便地对模块进行调试和测试
index.js 文件
#!/usr/bin/env node
console.log(1);
第一行作用:指定用 js 语言编译,一定要写,不然编译器不知道是啥语言~
以上~初级配置完成~下面使用两个包~
index.js文件:
const cm = require('commander')
const inquirer = require('inquirer')
cm.version('^4.0.1','-v --version');
// .version指令:第一个参数版本号 第二个参数命令 当-v/--version 的时候,输出版本
cm.parse(process.argv) // 解析命令
cm.command('init').action((name) => {
inquirer.prompt([{
type: 'input',
name: 'projectName',
message: '项目名称'
}, {
type: 'confirm',
message: '是否进行监听',
name: "isWatch",
}, {
type: 'list',
message: '请选择一种设备',
name: 'device',
choices: ['ios', 'android']
}, {
type: 'checkbox',
name: 'color',
choices: ["red", "blur", "green", "yellow"]
}, {
type: "password",
message: "请输入密码:",
name: "pwd"
}, {
type: "editor",
message: "请输入备注:",
name: "editor"
}]).then((answers) => {
console.log(answers) // 打印出答案
})
})
cm.parse(process.argv) // 解析命令
解析命令一定要加在最后,不然命令不生效~
.command().action().then()
.command:触发命令
.action:触发命令执行的动作
.then:执行动作后的回调函数
inquirer.command 的 用法~
原文链接:https://blog.csdn.net/qq_26733915/article/details/80461257