UNPKG

hygen

Version:

The scalable code generator that saves you time.

116 lines (81 loc) 3.24 kB
--- title: Quick Start doc: 1 section: 1 category: "tech" type: "doc" --- Install `hygen`: ``` $ npm i -g hygen ``` To use a generator, we supply a `GENERATOR ACTION` pair like so (here `mailer` and `new` are examples). ``` $ hygen mailer new | ^----- action `------------ generator ``` Here's a quick run-down to get to your own generator: ```bash $ hygen init self $ hygen generator new --name awesome-generator $ hygen awesome-generator new --name hello ``` To see the `generator` help, you could always do: ```bash $ hygen generator help Loaded templates: _templates help: hygen generator new --name [NAME] --action [ACTION] hygen generator with-prompt --name [NAME] --action [ACTION] ``` Congratz! you've made a new generator called `awesome-generator`! Let's walk through what we just did. [[info]] | You can also install `hygen` from Homebrew or download a standalone binary. For more, see [standalone](/standalone). ## Bootstrapping Your Project Use `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. ```yaml{2} $ 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 --name generatorName` - builds a new generator for you * `hygen with-prompt new --name generatorName` - the same as before, only this one will be prompt driven. [[info]] |###### Template Locality |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: ```yaml $ hygen generator new --name mygen Loaded templates: _templates added: _templates/mygen/new/hello.ejs.t ``` And let's use it: ```yaml{4} $ hygen mygen new Loaded templates: _templates added: app/hello.js ``` [[info]] |###### Did You Notice? |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. That's it! we've done a basic walkthrough of `hygen`. Next up is a detailed overview of [templates](/templates) and [generators](/generators). ## Invoking Generators There are more ways to play with a generator after you've built it: ```perl # generate all files, with a 'name' variable $ hygen example-prompt new --name reporter # generate one specific file, picked up based on the substring 'mailer' $ hygen example-prompt new:mailer --name reporter # generate all resources that correspond to a regular expression $ hygen example-prompt 'new:.*html' --name reporter ``` You made it to the end! nice! Now check out [templates](/templates) and [generators](/generators).