boiler
Boilerplate generator framework & low-code power tool 🛠️
npm install -g boiler-dev
Generator lifecycle
Action | Command |
---|---|
Start a new TypeScript project | boiler new [project-name] |
Change directory to project | cd [project-name] |
Install and run generator | boiler generate [git url] |
Update generator | boiler update [boiler/generator-name] |
Regenerate installed generator | boiler generate [boiler/generator-name] |
Create new generator | boiler new [boiler/generator-name] |
Commit and push generator | boiler commit [boiler/generator-name] |
Status of generator repos | boiler status [boiler/generator-name] |
When commands are run without arguments, it will run across all installed generators.
For successive generate
calls, boiler will regenerate with saved user input unless the --new
flag is specified.
Important files
Path | Description |
---|---|
.boiler.json |
Record of generator runs, with version and user input data |
boiler/ |
Installed generator repos |
Usage examples
Install boiler
npm install -g boiler-dev
Run generator
cd
to your projectboiler generate [git repo]
The generate
command automatically installs new generators.
Generator repos are cloned to the boiler
directory within your project. The boiler
directory is like node_modules
for your generators.
ℹ️ Explore example generators on the boiler-dev GitHub org.
Update and regenerate
cd
to your projectboiler update [boiler/my-generator]
boiler generate [boiler/my-generator]
New generator
cd
to your projectboiler new boiler/my-generator
Develop generator
- Modify
boiler/my-generator/boiler.ts
(see next section for API details) boiler generate boiler/my-generator
boiler commit boiler/my-generator "First commit"
boiler.ts
Generator API — Each generator repo must have a boiler.ts
or boiler.js
file:
Prompt
The prompt
function returns an array of "prompts" that define user input to retrieve.
Prompts are essentially an array of Inquirer.js Questions.
Generate
The generate
function returns an array of "actions" necessary to install the boilerplate.
Actions are a convenience; feel free to run your own async code within installBoiler
and return nothing.
Write file action
actions.push
ℹ️ The
bin
option runschmod +x
on the file.
Merge JSON action
actions.push
ℹ️ The merge functionality comes from deepmerge.
NPM install action
actions.push
New project
When not used within a boiler/
directory, the boiler new
command creates a new TypeScript project to kick things off:
boiler new my-project
ℹ️ This is a shortcut for manually running the following generators: