一、核心思想
使用node自带的process库去读取命令的参数
二、准备
1、查看require("process").argv
是什么
const argv = require("process").argv
console.log({ argv })
2、被引用的mycli-ljy-2
里面增加init
函数
module.exports = {
sum(a, b) {
return a + b
},
mul(a, b) {
return a * b
},
init({ option, param }) {
console.log("执行init流程", option, param);
}
}
3、使用软链接让mycli-ljy
调用mycli-ljy-2
三、编写mycli-ljy init --name test
命令
// 获取全部的参数
const argv = require("process").argv
// 获取 init 位置的参数,既init
const command = argv[2]
// 获取下标为3后面的参数
const options = argv.slice(3)
if (options.length > 1) {
// console.log(options);
// console.log(command);
let [option, params] = options
option = option.replace("--", "")
console.log(option, params)
if (command) {
if (lib[command]) {
lib[command]({ option, params })
} else {
console.log("无效的命令");
}
} else {
console.log("请输入命令")
}
}
四、编写mycli-ljy --version或mycli-ljy -V命令
if (command.startsWith("--") || command.startsWith("-")) {
const globalOption = command.replace(/--|-/g, "")
// console.log(globalOption)
if (globalOption === "version" || globalOption === "V") {
console.log("0.0.1")
}
}
五、代码地址:
地址:https://github.com/linjyuan/testCli/tree/%E5%89%8D%E7%AB%AF%E5%88%9B%E5%BB%BA%E8%84%9A%E6%89%8B%E6%9E%B6-%E5%88%9B%E5%BB%BA%E8%84%9A%E6%89%8B%E6%9E%B6-3