详细解释使用Node.js开发简单的脚手架工具
前言
我们熟悉的诸如vue-cli和react-native-cli之类的支架可以通过简单地输入命令vue init webpack project来快速帮助我们生成一个初始项目。在实际工作中,我们可以定制一个自己的脚手架来提高工作效率。
为什么需要脚手架?
减少重复性工作,不再需要复制其他项目和删除不相关的代码,或者从头开始创建项目和文件。根据交互,动态生成项目结构和配置文件。多人协作更方便,不需要到处传递文件。思路
发展脚手架,首先要理清思路。脚手架是如何工作的?我们可以借鉴vue-cli的基本思想。Vue-cli将项目模板放在git上,运行时根据用户交互下载不同的模板,由模板引擎渲染生成项目。这样,模板和脚手架可以分开维护。即使模板发生变化,也只需要上传最新的模板,无需用户更新脚手架就可以生成最新的项目。那么就可以按照这个思路来开发。
第三方库
让我们首先看看将使用哪些库。
Commander.js可以自动解析命令和参数,用于处理用户输入的命令。下载-git-repo,下载并提取git资源库,用于下载项目模板。Inquirer.js是命令行用户界面的一般集合,用于与用户进行交互。Handlebars.js,模板引擎,将用户提交的信息动态填充到文件中。Ora,如果下载过程比较长,可以用来显示下载中的动画效果。粉笔,可以给终端的字体添加颜色。终端上可以显示对数符号、图标,如或。
初始化项目
首先,创建一个空项目,暂时命名为okii-cli,然后创建一个新的index.js文件,然后执行npm init生成一个package.json文件。最后,安装上面需要的依赖项。
复制代码如下: NPM安装命令下载-git-repo查询程序句柄barora粉笔日志-符号-s
处理命令行
node.js中支持命令行操作package.json中的bin字段可以定义命令名和关联的执行文件。所以现在
将bin添加到package.json:
{'name' :' okii-CLI ',' version' :' 1.0.0 ',' description' : '基于节点的脚手架工具',' bin ' : { ' okii ' : ' index . js ' },}
#!/usr/bin/env node const program=require(' commander ');program.version('1.0.0 ','-v,- version ')。命令(' init name ')。action((name)={ console . log(name));});program . parse(process . argv);调用version ('1.0.0 ','-v,-version ')会将-v和-version添加到命令中,可以通过这些选项打印版本号。
调用命令(' init name ')定义init命令,name是必选项,是项目名。
Action()是执行init命令时发生的行为。生成项目的过程在这里执行,暂时只在这里打印名字。
实际上,此时可以执行init命令。让我们测试一下,在okii-cli的相同目录中执行:
从节点。/okii-CLI/index . js init HelloWorld,我们可以看到命令行工具也打印了hello world,所以很明显,action中的参数名((name)={})就是我们执行init命令时输入的项目名。
命令已经完成,然后将下载模板来生成项目结构。
下载模板
Download-git-repo支持从Github、Gitlab和Bitbucket下载仓库。具体用法请参考官方文件。
由于是公司项目,模板仓库放在Gitlab上,所以通过操作in action()下载模板:
#!/usr/bin/env node const program=require(' commander ');const download=require(' download-git-repo ');program.version('1.0.0 ','-v,- version ')。命令(' init name ')。操作((名称)={ download('http://
版权声明:详细解释使用Node.js开发简单的脚手架工具是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。