Yeoman是Google的团队和外部贡献者团队合作开发的,他的目标是通过Grunt(一个用于开发任务自动化的命令行工具)和Bower(一个HTML、CSS、Javascript和图片等前端资源的包管理器)的包装为开发者创建一个易用的工作流。它是一个构建漂亮Web应用的工具和框架。Yeoman用于把各种不同的工具整合起来,形成一套完整的前端开发的工作流程。
Yeoman主要有三部分组成:yo(脚手架工具)、grunt(构建工具)、bower(包管理器)。
- Yo 是一个 Web 应用的架构(scaffolding)工具。它提供了非常多的模板,用来生成不同类型的 Web 应用。这些模板称为生成器(generator)。社区也贡献了非常多的生成器,适应于各种不同的场景。通过 Yo 生成的应用使用 Grunt 来进行构建,使用 Bower 进行依赖管理。
- grunt基于Node.js创建,Grunt是一个基于任务的命令行工具,它能够同构减少减少预先需要准备的资源来加速工作流。它将工作包裹进入任务之中,任务会随着你的工作进程自动编译。基本来说,你可以在任何你觉得可以使用grunt的项目以及那些需要你手动配置并运行的项目中使用Grunt。
- bower作为一个js依赖管理的工具,提供一种理想包管理方式,借助了npm的一些思想,为我们提供一个舒服的开发环境。
但是grunt存在一些缺陷,它正在被gulp取代。和grunt类似,它是一个基于流的构建工具,把源文件倒入一个处理容器1(任务1),再倒入处理容器2(任务2),最后倒入最终的容器(目标文件)。