一个小型的脚手架创建测试

177 阅读2分钟

脚手架的应用

脚手架工具的应用其实就是node cli的应用, 创建一个脚手架工具就是创建一个cli应用

脚手架原理

启动脚手架后,通过一些预设问题拿到交互的结果,再去结合一些模板文件去生成项目的结构。

脚手架基础应用搭建

1.创建当前脚手架目录 如mkdir myCliTest

2.cd myCliTest进入这个文件,并执行yarn init去生成一个初始的package.json文件

3.code .执行进入编辑起

image.png

4.在package.json配置文件中添加“bin”字段,用于指定cli应用的入口文件, 此处命名为cli.js, 并在当前目录下创建cli.js

5.cli入口文件必须有这样的开头

image.png

6.接下来通过yarn link将当前脚手架link到全局,就可以通过这个cli命令(文件名)myCliTest去执行了 。当前vs Code终端已有打印结果

image.png

脚手架创建公用文件

脚手架的工作过程

1.通过预设交互询问用户问题

2.根据用户结果及模板文件去创建文件

通过命令行与用户交互

1.node使用命令行发起交互,使用inquirer模块,yarn add inquirer安装依赖

2.inquirer中prompt发起交互, then方法中可以拿到用户返回的结果

image.png

通过交互结果去生成文件

  1. 脚手架根目录下创建一个模板文件,此处为templates,仅有一个文件index.html,当然根据需要可添加其他文件。。。。。

image.png

2.当前模板文件可通过<%= name%>的方式去输出交互的结果name

3.生成文件前需要确定模板目录以及生成文件的目录

当前文件路径

const tmpDir = path.join(__dirname, 'templates')

目标文件路径,一般就是在使用命令的路径,可以通过process.cwd()方法拿到 const targetDir = process.pwd()

4.知道路径后通过fs.readDir去读取模板文件下有哪些文件

image.png

5.读取完文件需要将当前这些文件转入目标文件目录,此前还需要对应文件的内容

6.安装模板引擎yarn add ejs, 通过ejs.renderFile去渲染文件的内容

image.png

7.最后,将所有文件拿到的结果通过写入的方式写入目标文件fs.writeFileSunc

8.此时小型脚手架已经搭建完成

查看结果

我新建一个文件家, cliTestTmp, 然后在这个路径下执行刚刚的脚手架命令

image.png

image.png

image.png

可以看到结果是没问题的。