You can have plenty of ways to run
hygen. Pick one of the following:
On macOS and Homebrew:
$ brew tap jondot/tap $ brew install hygen
Globally with npm (or yarn):
$ npm i -g hygen
Or, if you like a no-strings-attached approach, use
$ npx hygen ...
Should any of these be confusing to you, check out the binary releases where you'll find a binary for every major platform.
With this done, let's use a
To use a generator, we supply a
GENERATOR ACTION pair like so (here
new are examples).
$ hygen mailer new [NAME] | ^----- action `------------ generator
New in hygen 4.0.0: a positional
NAME parameter to save a bit of typing. With versions prior to 4.0.0 you still have to use
Here's a quick run-down to get to your own generator:
$ hygen init self $ hygen generator new awesome-generator $ hygen awesome-generator new hello
To see the
generator help, you could always do:
$ hygen generator help Loaded templates: _templates help: hygen generator new [NAME] --action [ACTION] hygen generator with-prompt [NAME] --action [ACTION]
Congratz! you've made a new generator called
Let's walk through what we just did.
You can also install
hygen from Homebrew or download a standalone binary. For more, see standalone.
hygen init self to start using it in your own project.
hygen comes with two pre-built generators that helps you build your own - although it was built to ease the boilerplate fatigue for React, Redux, and Node.js it can be use for any technology really.
$ cd your-project $ hygen init self Loaded templates: src/templates added: _templates/generator/with-prompt/hello.ejs.t added: _templates/generator/with-prompt/prompt.ejs.t added: _templates/generator/new/hello.ejs.t
This creates a project-local
_templates folder for you at your source root with two helper generators that saves you time:
hygen generator new generatorName- builds a new generator for you
hygen generator with-prompt new generatorName- the same as before, only this one will be prompt driven.
On multi-team projects, each team can have their own templates right there in the shared repo.
Still in your project root, let's create a new generator now:
$ hygen generator new mygen Loaded templates: _templates added: _templates/mygen/new/hello.ejs.t
And let's use it:
$ hygen mygen new Loaded templates: _templates added: app/hello.js
Instead of bundling the
hygen generator new command in
hygen, we chose to copy it to your local templates folder.
In this way you can even tweak the way
hygen generates new generators. It scales to a set up with different teams, each with its own preference.
There are more ways to play with a generator after you've built it:
# generate all files, with a 'name' variable $ hygen example-prompt new reporter # generate one specific file, picked up based on the substring 'mailer' $ hygen example-prompt new:mailer reporter # generate all resources that correspond to a regular expression $ hygen example-prompt 'new:.*html' reporter