12.抽象Command
我们在开发脚手架的时候,对于命令一般会封装成一个Command库,然后所有执行的命令都继承这个库
1. Command库
- 我们会建造一个Command类,这个类会接收到命令行的所有参数
- 然后解析参数,对不符合要求的参数进行错误处理
- 核心:通过promise链式调用,异步逐步执行node版本检查,参数初始化,程序初始化,程序执行等操作
- 参数初始化主要是为了获取参数的最后一位——命令对象和除了最后一位的参数
- 程序初始化init和程序执行exec函数,在Command类都会报出一个错误,按理来说,这样调用init或exec肯定会报错,无法继续执行下去,但是这样的设计是为了让命令子类继承Command,保证子类必须要写init和exec函数,这样子类写了之后,去new一个子类,会执行父类的constructor,然后constructor中执行的方法如果子类有,就会调用子类的方法,而不是父类的方法。
'use strict&#