shell命令与脚手架cli的开发

shell命令的解释器bash与cli的开发

脚手架cli开发的前期思考和准备工作
1.需求描述

根据命令选择不同的模板,按照指定的参数在指定的路径生成一个样板工程。

2.拆解需求

参数如何输入,结果如何展示?
模板维护在哪里?
怎么获取模板?
如何根据模板个参数生成工程?

3.参数的输入,结果输出

commander.js(传参),inquirer(输入),chalk(输出)

4.模板在哪里维护?

git仓库维护模板

5.如何获取模板?

git clone,使用execa或shell.js调用第三方cli

6.如何生成工程

模板引擎,例如handlebars

有关开发cli的基础知识
1.shell是一种脚本语言,在不同的操作系统有不同的解释器。
2.脚本钩子有pre[script]和post[script]两种,分别可以在调用某脚本之前或之后,调用该脚本。
3.脚本传参使用--语法。
4.shell可以使用prosses.argv获取参数,前两个参数分别是命令执行的运行时和脚本文件路径,且获得的参数以字符串的形式展示,不够智能。
5.node生态的重要缔造正TJ写的commander.js解决了传参麻烦的问题。
6.Inquirer.js可以实现灵活生动的命令行输入交互方式(兼容多平台)。
7.chalk可以实现提升cli对用户的输出提示效果。这个包之所以可以改变cli文字的颜色是因为用了颜色标准ANSI Escape Code,在命令行中有些字符可以代表颜色。
8.cli调用其他第三方的cli可以使用shelljs、execa等包。

使用轮子快速开发脚手架cli
1.plop(轻量级)
2.yeoman-generator(功能强大)

真正的cli的框架
oclif

新一代革命性的脚手架
Schemetics

你可能感兴趣的:(cli)