1、process.arg
process是nodejs内置的一个对象,该对象提供了当前有关nodejs进程的信息。(例如获取当前进程id,执行平台等与当前执行进程相关的对象和方法)
实例封装
输入
npm run tem name=123 id=999
封装
/**
* 获取命令行参数并返回对象
* @returns {Object} 参数对象
*/
function getOption() {
const arr = process.argv.slice(2); // 获取命令行参数数组
const r = arr.reduce((pre, item) => { // 使用reduce方法对参数数组进行处理
if (item.indexOf("=") !== -1) { // 判断参数是否有等号
return [...pre, item.split("=")]; // 将带有等号的参数进行分割并添加到结果数组中
}
return pre; // 否则返回原结果数组
}, []);
const params = Object.fromEntries(r); // 将结果数组转化为参数对象
return params; // 返回参数对象
}
输出
{ name: '123', id: '999' }
2、封装获取参数函数
从上面两个例子和官方文档中,我们可以得知argv的前两个参数都是固定的,在获取用户传入的参数我们需要process.argv.slice(2)一下,只获取从下标2开始的元素。 也即是
3、commander 自定义命令行指令
更多用法commander
4、inquirer
实现与询问用户信息的功能需要引入 inquirer.js