脚手架是指可以自动化创建项目基础结构、提供项目规定和规范的工具
除了自动化创建一些文件外,脚手架最大的作用是提供给开发者项目结构的规范和约定
项目当中一些相同的约定:
- 相同的项目组织结构
- 相同的代码开发范式
- 相同的模块依赖
- 相同的工具配置
- 相同的基础代码
这样就会在新建项目当中有相当一些重复的工作要做,这时脚手架可以快速完成某种特定类型项目的搭建,在这个搭建项目的规范中进行后续代码的开发
前端的技术方向比较多,没有一个IDE工具集成了脚手架,但有许多的脚手架工具可以来创建项目,这些脚手架工具都是针对某一种技术,本质上脚手架工具都是为了快速搭建一个项目
一个脚手架例子
脚手架工具是通过接受用户的一些输入,然后产生对应的某一种类型的项目基础结构,可以通过node来创建一个简单脚手架工具
脚手架工作流程
通过命令行交互询问用户问题
根据用户回答结果生成文件
读取模板文件,利用模板引擎把用户的输入替换到文件中,再将文件输出到指定目录
1、初始化一个package.json,在package.json中添加一个bin属性指定cli文件的名称,新建一个cli.js文件,文件头部声明是一个node cli应用入口 #!/usr/bin/env node
2、通过npm link 方式link到全局命令后,就可以用这个命令(对应package.json的name)
3、用inquirer的prompt询问用户问题,接收用户的输入
4、fs读取模板文件目录,循环文件,利用ejs模板引擎把用户输入替换模板文件的对应位置
5、再把替换后的文件输出到目标目录