Yeoman是一个众所周知的 脚手架系统(“脚手架”源于建筑工程,是为了保证各施工过程顺利进行而搭设的平台),可以使用它来快速构建各种类型的应用。它不但可以帮助你快速地构建一个新的项目,而且也可以简化已存在的项目开发过程。
Yeoman是一个和项目本身开发语言无关的构建系统,它可以生成任何语言的项目(Web、Java、Python、C#等等)。
Yeoman本身不在构建过程中做任何决定,每一次决定都由 generators 做出,generators 是 Yeoman 系统环境中最基本的插件。现在已经有很多开放可用的generators,你也可以为特定的工作流创建全新的generators。Yeoman永远是你构建脚手架最好的选择!
下面是一些常见的应用场景:
- 快速创建一个新项目;
- 创建项目的某一块内容,比如创建一个带单元测试的控制器(controller);
- 创建模块(module)或者包(package);
- 发布一项新服务;
- 强制项目标准化,使用最佳实践和统一风格引导;
- 通过让用户从一个简单应用开始,逐渐完善扩展成一个新的项目;
yo
是Yeoman的命令行公用程序,允许通过 脚手架模板(即 generators)来创建全新的项目。我们使用到的 Yo 和 generator 都是通过 npm 来安装的。
安装 yo 和 generator
首先用 npm
安装 yo
:
npm install -g yo
然后安装所需的 generator(s)。generators 是一些命名成 generator-XYZ
的 npm 包。你可以在Yeoman的官网 查找它们,或者运行 yo
命令,然后选择 “install a generator” 菜单选项来查找。现在,让我们来安装一个 webapp
的generator:
npm install -g generator-webapp
新的 Node 或者 npm 使用者可能会遇到一个权限的问题。在安装过程中会出现 EACCESS
形式的报错。如果你遇到这种情况可以查看 npm guide to fix permissions 。
npm 是 Node.js 的包管理器,是随着 Node.js 捆绑安装的。
如果您使用的是 Windows 系统,我们建议您使用 cmder、PowerShell 等命令行工具来提升您的使用体验。
基本脚手架
我们将在下面的例子中使用generator-webapp
。下面你可以用 webapp
代替 generator-webapp
可以得到同样的结果。
构建一个新项目,你可以执行:
yo webapp
大多数的 generators 将会问一系列的问题来帮助您定制化地创建一个项目。您可以使用 help
命令来查看可供使用的选项,如下所示:
yo webapp --help
许多脚手架依赖于构建系统(例如Grunt、Gulp),和包管理器(例如 npm、Bower)。在运行和掌握一个新的项目应用之前可以去 generator 的官网学习。可以通过下面的命令便捷得访问 generator 的官网:
npm home generator-webapp
generator 构建一个复杂的系统时,有可能会提供一些额外的 generator 来构建项目中更小的部分。这些额外的 generator 通常被称为 sub-generators,并且通过 generator:sub-generator
来访问。
拿 generator-angular
来举例。一旦一个完整的 angular 应用被创建后,我们可以额外新增项目的其他特性。比如,为项目新增一个新的controller,我们可以输入如下命令:
yo angular:controller MyNewController
其他 yo 的命令
除了之前讲到的一些基本的命令,yo
还有很多其他命令,它是一个交互式的工具。您只要在终端中输入 yo
,它将会提供一系列与 generator 有关的管理选项,例如 run
、update
、install
、help
和其他的一些实用命令。
Yo同样提供了下列一些全局命令:
yo --help
获取帮助信息;yo --generators
列出所有已经安装的 generators;yo --version
获取 Yo 的版本信息;
排查错误
大部分的问题可以通过运行如下命令进行排查:
yo doctor
doctor
命令会可以检测和提供一些常见问题的解决方案。