npm.io
0.5.2 • Published 6 years agoCLI

@cspruit/vulcan

Licence
GPL-3.0-or-later
Version
0.5.2
Deps
8
Size
62 kB
Vulns
1
Weekly
0

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.

Keywords