Generate project build versions.

Create version information for a project.

Generates version information and assigns it to the processing context.

Other plugins can consume the version information to generate meta data, visible DOM elements or to create versioned archives.

new BuildVersion(context, options)

Creates a BuildVersion plugin.

Provides functions that will extract the version field from package.json (package option) and get the latest git commit hash (commit option).

Result values are assigned to so to retrieve the package version you would access or for the git commit hash.

You can supply your own version functions using the versions option, each function is passed the processing context and plugin options and should return a version. If a version function needs to operate asynchronously it should return a promise.

The signature for a version function:

function getVersion(context, options)

When no git option is set the command git rev-parse --verify HEAD is used.

BuildVersion.prototype.getPackage(context, options)

Requires package.json from the current working directory and returns the version field.

Returns package version string.

BuildVersion.prototype.getCommit(context, options)

Runs the git rev-parse command and resolves the result from the stdout of the command execution.

Leading and trailing whitespace is removed from the command result.

Returns a promise that resolves to the stdout of the command.

BuildVersion.prototype.before(context, options)

Configure the map of versions to generate.

BuildVersion.prototype.after(context, options)

Call version generation functions and assign the results to the processing context.