0.5.2 ā¢ Published 4 years ago
@cspruit/vulcan v0.5.2
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.