@cspruit/vulcan
v0.5.2
Published
A boilerplate creator and maintainer
Downloads
4
Maintainers
Readme
Vulcan
⚒ A CLI boilerplate creator and manager
Easily set up and create any boilerplate code that can be uses multiple times for different projects.
Installation
- Install by running
npm install -g vulcan
to install globally.
Usage
Creating a Template
In order to start generatating boilerplate code, a template needs to be created first. In a clean directory, stage any files that you want to use. Templating uses Handlebars. To call a field you just need to wrap it in {{ }}.
Example Templating for a README.md file
# {{projectName}}
## __{{description}}__
Vulcan config
- Name
- Required
- Used to create and generate templates, so make it easy to remember and short
- Fields
- Accepts values that will be used in the template
- Field Properties:
- description: (string, required), displays to the user during creation
- type: (string, default: 'string'), type of question asked to the user. Accepted values: number, list, boolean, string
- pattern: (string), requires input to match RegEx expression. NOTE: Make sure to leave out the beginning and ending '/'
- patternDescription: (string), displays to the user if they fail to meet the pattern requirements
- required: (boolean), required to create the template
- Fields can also just take a string as a shortcut for { description: "some given string", type: string, required: false }
- Ignore
- Accepts a list of glob patterns to not include in the template (aka blacklist)
- node_modules, .git, package-lock.json not included by default.
- Files
- Accepts a list of glob patterns to exclusively include in the template (aka whitelist)
- Files will be taken into account first, then the ignore property
Example Config
Config settings can be separate in vulcan.config.js, .vulcanrc, or in as a field in package.json.
"vulcan": {
"name": "cli-utility",
"fields": {
"pkg": {
"description": "NPM package name",
"type": "string",
"pattern": "^[0-9a-z\\$\\-\\+\\!\\*\\'\\(\\)][0-9a-zA-Z\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)]{0,213}$",
"patternDescription": "Must match NPM naming scheme (alphanumeric, no spaces, cannot start with a . or _ or capital letter)",
"required": true
},
"description": "Package description",
"name": "Display name of package",
"urlName": {
"description": "URL name of package repo",
"required": true
}
},
"files": [
"src",
"assets",
],
"ignore": [
"*.test.js"
]
}
List of Vulcan Templates
- CLI Utility : Generates a very basic node.js CLI utility app
Contributing
All contributions, suggestions, and issues are welcome!
Check out the Issues page.
License
This project uses GPL 3.0.