安装 :
$ yarn global add hygen-create
或
$ npm install -g hygen-create
注意,这里并没有安装hygen。要使用由hygen-create生成的生成器,你必须提前安装好hygen$ npm i -g hygen
用途:
hygen-create 提供了一种创建新生成器的方法:获取现有的一段代码,并自动将其转换为生成器。
使用hygen-create创建一个生成器,步骤如下:
1.启动一个hygen-create会话
hygen-create start <generator-name>
2.选择要包含在生成器中的文件
hygen-create add <file>
3.指定一个字符串,以便在生成的模板中自动转换为ejs片段 (表示要用占位符替换哪个词)
hygen-create usename <name>
4.检查会话状态(可选)
hygen-create status
(如果我们想看看我们的文件将如何模板化,我们可以使用hygen-create status -v file来检查它)
5.配置目标hygen _templates目录(可选)
在生成生成器之前,需要导出HYGEN_CREATE_TMPLS来设置目标目录
如:$ export HYGEN_TMPLS=/tmp/_templates
(注:目前在命令窗口执行这一行报错,暂时手动在项目的根目录下添加_templates文件夹)
6.生成新的生成器
$ hygen-create generate
以上四步的执行结果是:一个新的hygen生成器将被创建。
现在可以通过hygen greeter new --name <targetName> 来使用新的生成器。
举个栗子:
假设我们有一个小项目hello,我们想用它作为其他项目的起点
目录结构如下:
/projects/hello
|-package.json
|-dist
|-hello.js
package.json的内容:
{
"name": "hello",
"version": "1.0.0",
"description": "an application that prints hello",
"scripts" : {
"hello": "node dist/hello.js"
}
}
dist/hello.js的内容:
console.log("Hello!")
运行hello脚本:
$ npm run hello
执行结果:
项目的准备工作已经完成,接下来就是创建生成器:
使用hygen-create从这个hello项目生成一个greeter生成器
第1步: 开启一个hygen-create会话
$ hygen-create start greeter
created hygen-create.json
第2步:添加要包含在生成器中的文件
$ hygen-create add package.json dist/hello.js
adding: package.json
adding: dist/hello.js
执行完以上两步,我们会发现项目的根目录下多了一个hygen-create.json文件,内容如下:
{
"about": "This is a hygen-create definitions file. The hygen-create utility creates generators that can be executed using hygen.",
"hygen_create_version": "0.2.0",
"name": "greeter",
"files_and_dirs": {
"hygen-create.json": true,
"package.json": true,
"dist\\hello.js": true
},
"templatize_using_name": "Hello",
"gen_parent_dir": false
}
第3步:告诉hygen-create把单词Hello转换成生成器的名称参数:
$ hygen-create usename Hello
using 'Hello' as templatization word
5 matching lines found in 3 included files
第4步:
1、查看会话状态:
$ hygen-create status
如图所示:
从上图可以看出生成器中包含了
hygen-create.json、package.json、dist\hello.js这三个文件
2.查看文件如何模板化
hygen-create status -v package.json
hygen-create status -v hygen-create.json
hygen-create status -v dist\hello.js
第5步:配置目标hygen _templates目录
在根目录下新建_templates文件夹
第6步:创建生成器
使用hygen-create从这个hello项目生成一个greeter生成器
hygen-create generate
如图:
目录结构变为:
然后在hello目录下新建tmp文件夹 剪切_templates文件到tmp中
在tmp目录下:
使用greeter生成器
hygen greeter new --name Hola
图片
运行:
$cd tmp
$ npm run hola
> hola@1.0.0 hola F:\2020project\hygenDemo\hello\tmp
> node dist/hola.js
Hola!
最后,如果我们进到tmp目录下并执行
hygen-create status
我们会看到已经包含了生成的文件hygen-create.json 、package.json 、dist\hola.js,并且已经设置了hygen-create usename 值和生成器名称:
如果想把代码里的hola统一修改为XXX使用如下命令:
hygen create username XXX
通过这种方式,我们可以对生成的项目进行更改
本文使用 mdnice 排版