学习搭建一个自己的 vue 脚手架 制作 Commands 五 多个option

47 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情

十、制作 Commands 五,多个 options

引言

这里开始新的学习系列,动手搭建一个属于自己的 vue 脚手架

主要以 vue 官方的 vue cli 作为参考和学习

方便自己在后续创建 vue 项目时,不必总是复制粘贴

多个 options

上一节,我们成功的在 Commands 中,进行正确的使用了可选参数 options

这一节,我们来进行 多个 可选参数 option 的使用

首先还是在我们的 lib\core\commands.js 文件下,来修改我们的 create 方法

const create = (program) => {
  program
    .command('create <app-name>')
    .description('create a new project powered by wzms-cli')
    .option('-p, --preset', 'Skip prompts and use saved or remote preset')
    .option('-d, --default','Skip prompts and use default preset')
    .action((name,options) => {
      console.log(name,options)
    })
}

可以看到我们是又添加了一个 -p 属性,详细字段为 preset 的一个 option

之后,我们在控制台输入命令,先看下是否添加成功

wzms-cli create aaa -p 

image.png

竟然报错了!这时可能会疑问,我们的 preset 为什么变成 --port 了?

其实这个问题是我们之前在 lib\core\options.js 定义的代码,没有注释之前的代码所导致的

image.png

将其注释后,我们再次执行代码,结果如下图

image.png

可以看到我们成功的又添加了一个 option 可选参数

关键点

既然上面的那个也成功添加了,那么是否可以存在两个 options 呢?

我们测试一下

wzms-cli create aaa -p -d

image.png

可以发现是可以同时存在两个参数的,我们如果要取值的话,分别进行取值判断即可

这里再看下我们的 create 方法,与 vue cli 的差距

image.png

可以看到已经很靠近了,接下来就是逻辑 和 参数的 处理了

总结

我们可以在 Commands 中,来使用多个 option