👽 概论
之前和大家分享的内容,总的来说就是在阐明脚手架中的模板具体应该包含哪些内容、哪些功能。这部分单独拎出来看其实与脚手架关系不大,但又是脚手架开发中不可或缺的一个环节。
今天我们来聊一聊和脚手架强相关的内容:定义脚手架的功能、介绍脚手架相关的库。这部分结束之后,明天我们会正式进入开发阶段的介绍,欢迎大家持续关注━(`∀´)ノ亻!
👽 脚手架功能的定义
熟悉vue-cli或者umi的朋友应该知道,这两款脚手架的功能非常多样,但两者最核心的功能是一样的:创建项目模板。我们此次开发的脚手架自然也不例外,脚手架整体的功能流程图如下:
我们再来谈一谈模板生成这一核心功能。
脚手架中的模板按生成方式可以分为静态模板和动态模板两种。静态模板很好理解:最初定义的模板长什么样,脚手架生成之后的模板就长什么样,脚手架在其中更多的起到的是拉取的作用。动态模板相对更加灵活一些,会通过mustache等工具根据用户的选择、输入动态生成。
模板来源也有三种不同的方案。第一种:直接将模板嵌在脚手架内。这种方式简单直接、模板生成速度快,但模板管理不是很方便,适用于个人或者小型团队。第二种:将模板存放在gitlab/github仓库中。这种方式在需要生成模板时,会从相应的仓库地址去拉取模板,生成速度受拉取速度限制。第三种:通过npm拉取模板,原理与第二种相差不大。
此次开发我们会选择的最简单直接的方式:内嵌模板,静态生成。
👽 依赖库的介绍
🚩commander: nodejs下的命令行工具。
🚩chalk: nodejs下的命令行输出美化工具。
🚩fs-extra: nodejs中fs模块的扩展。
🚩inquirer: nodejs下的用命令行户交互工具。
🚩ora: nodejs下的命令行loading。
🚩shelljs: nodejs中shell脚本执行工具。
介绍完这部分就可以正式开发阶段啦,敬请期待后续!