Generate semver compatible version to uniquely identify project build using build metadata
# OPTION: Use npm
$ npm install --save-dev build-revision
# OPTION: Use yarn
$ yarn add build-revision --dev
var buildRevision = require('build-revision');
buildRevision().then(function(version){
console.log(version);
});
import buildRevision from 'build-revision';
const fn = aync() => {
const version = await buildRevision();
console.log(version);
}
If build metadata included in 'package.json' differs from that found by git. The SHA found by git is used.
Version | Build Version |
---|---|
0.1.0 | 0.1.0+SHA.abcd123 |
0.1.0-pre | 0.1.0-pre+SHA.abcd123 |
0.1.0-pre+SHA.01234567 | 0.1.0-pre+SHA.01234567 |
Version | Build Version |
---|---|
0.1.0 | 0.1.0+SHA.abcd123.currentuser.20170101T000000Z |
0.1.0-pre | 0.1.0-pre+SHA.abcd123.currentuser.20170101T000000Z |
0.1.0-pre+SHA.01234567 | 0.1.0-pre+SHA.01234567.currentuser.20170101T000000Z |
Version | Build Version |
---|---|
0.1.0 | 0.1.0+NOREV.currentuser.20170101T000000Z |
0.1.0-pre | 0.1.0-pre+NOREV.currentuser.20170101T000000Z |
- Appends
prefix.username.timestamp
to the version if repository does not exists - Appends
prefix.githash.username.timestamp
to the version for a git repository with local changes - Appends
prefix.githash
to the version for a git repository with no local changes
The timestamp is an ISO 8601 UTC string
Type: Promise
Throws: Error
- if the package version is not resolved
- if the package version is not a valid semver
- if the project is not a git repository
Returns:
- semver compatible version with a build metadata part
Build metadata Prefix
Type: `String`
Default: `SHA`
Search for the closest package.json starting from this directory
Type: `String`
Default: `.`