Yeoman
yeoman官网 Yeoman 是一个通用的脚手架系统允许创建任何的 app 。它可以迅速的搭建一个新项目,并且能够简化了现有项目的维护。
使用步骤: 1 明确需求 ( npm i -g Yo) 2 找到合适的Generator 3 全局范围安装Generator (npm i -g generator-node) 4 通过Yo 运行对应的Generator( Yo node) 5 通过命令行交互填写选项、 6 生成项目结构
自定义Generator
Generator实际上就是一个npm模块。 npm init -y初始一个npm模块
const Genertaor = require("yeoman-generator");
module.exports = class extends Genertaor {
writing() {
this.fs.write(this.destinationPath("temp.txt"), Math.random().toString());
}
};
继承Genertaor 类,父类提供了很多方法,比如this.fs,他是在node的fs的模块上面更进一层的封装。
根据模板创建文件
模板就是ejs模板,可以写入数据。
writing() {
const tmpl = this.templatePath("foo.txt");
const output = this.destinationPath("foo.txt");
const context = { title: "aa", test: "dd" };
this.fs.copyTpl(tmpl, output, context);
}
templatePath会自动去templates目录下找对应名字的模板,然后可以定义传给ejs模板的数据,通过copyTpl生成新的文件。
用户交互
module.exports = class extends Genertaor {
prompting(){
return this.prompt({
type: 'input',
name: "name",
message: 'Your project name',
default: this.appname,
}).then(answers=>{
this.answers = answers
})
}
writing() {
const tmpl = this.templatePath("foo.txt");
const output = this.destinationPath("foo.txt");
const context = this.answers
this.fs.copyTpl(tmpl, output, context);
}
};
通过prompting方法可以实现与用户的交互
Plop
小而美的脚手架工具。项目的每个模块的结构骨架都非常相似,引入模版内容相同就可以使用Plop来实现自动化了, Plop旨在根据模板文件自动化创建组件。 基本用法:
- 将plop模块作为项目开发依赖安装
- 在项目根目录下创建一个plopfile.js文件
- 在plopfile.js文件中定义脚手架任务
- 编写用于生成特定类型文件的模板
- 通过plop提供的cli运行脚手架工具。
定义模板 创建成功,以后开发可以自己生成组件模板,避免重复操作。
|