0.5.2 ā€¢ Published 4 years ago

@cspruit/vulcan v0.5.2

Weekly downloads
5
License
GPL-3.0-or-later
Repository
github
Last release
4 years ago

Build Status npm license XO code style Greenkeeper badge

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.