Yeoman官网地址:
Getting started with Yeoman | Yeoman
一、Yeoman是什么
Yeoman是一个基于nodejs的脚手架工具。在前端工程化的实践中,我们需要创建很多重复结构的文件,有很多页面拥有同一个格式,使用Yeoman提供的生成器,我们可以构建一个自己的脚手架,通过运行一条命令在项目中创建一个固定格式的文件或者文件夹。
二、Yeoman安装
1、安装yeoman:
npm i -g yo
// 或者,已经安装yarn的话
yarn global add yo
2、安装特定的生成器
可以去官网看一下yeoman都支持哪些生成器
根据自己想构建的项目安装对应的generator
这里以创建node模块为例,安装generator-node(其他的没了解过)
yarn global add generator-node
三、使用生成器创建一个具有基本项目结构的模块
1、创建一个文件夹,作为根目录,使用vscode打开,在终端执行命令
yo node
2、执行完这个命令时候,会出现一些选项的提示
? Module Name // 模块名 默认为当前目录名
(node:47980) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
(Use `node --trace-deprecation ...` to show where the warning was created)
? The name above already exists on npm, choose another? // 在npm上有相同的报名,是否更换,选择n
? Description // 模块描述 随便写
? Project homepage url // 可以写github仓库地址
? Author's Name // 自动识别用户名
? Author's Email
? Author's Homepage // 选默认值
? Package keywords (comma to split) // 关键词
? Send coverage reports to coveralls // 是否要将代码覆盖率发布到coveralls平台上,选n
? Enter Node versions (comma separated) // 支持哪一个node版本,直接enter
? GitHub username or organization // github用户名
? Which license do you want to use? // 协议
等待执行完毕以后会创建出来一个项目的基本结构,其中很多基础代码都已经写好了。填写的信息都会被写到package.json中,有不正确的可以进行修改。
四、sub-generator(子集生成器)
某些时候,我们不需要创建一整个项目目录,而只需要创建某一个具有特定结构的文件,比如eslint的配置文件。这种情况下,sub generator便可以替我们实现这一需求。比如这里我们创建一个cli(命令行界面)应用。
1、执行命令
yarn node:cli
会询问:
? Overwrite package.json?
填 y 表示 yes
2、yo会为我们创建一个cli.js文件,并且在package.json中引入cli应用需要的依赖和配置,此时需要安装相应的依赖:
yarn
3、此时我们的这个模块已经成为了一个cli应用,通过以下命令,将模块应用到全局
yarn link
就可以在全局使用模块名来运行这个命令行工具
4、运行以下命令
my-module --help
mac电脑出现提示没有权限,运行
sudo chmod -R 777 my-module
给这个文件夹加所有的权限,然后再运行my-module –help,可以看到cli应用的输出:
5、并不是所有的generator都具有子集生成器,我们可以在github中查看当前generator都支持什么子集生成器,例如generator-node可以到以下地址查看
https://github.com/yeoman/generator-node