hygen-create

1,144 阅读2分钟

安装 :

$ 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 排版