diff options
Diffstat (limited to 'deps/npm/man/man1/npm-version.1')
-rw-r--r-- | deps/npm/man/man1/npm-version.1 | 70 |
1 files changed, 51 insertions, 19 deletions
diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 index 6c9444ff7..1cfe82618 100644 --- a/deps/npm/man/man1/npm-version.1 +++ b/deps/npm/man/man1/npm-version.1 @@ -1,4 +1,4 @@ -.TH "NPM\-VERSION" "1" "June 2015" "" "" +.TH "NPM\-VERSION" "1" "August 2015" "" "" .SH "NAME" \fBnpm-version\fR \- Bump a package version .SH SYNOPSIS @@ -11,21 +11,22 @@ npm version [<newversion> | major | minor | patch | premajor | preminor | prepat .SH DESCRIPTION .P Run this in a package directory to bump the version and write the new -data back to \fBpackage\.json\fR and, if present, \fBnpm\-shrinkwrap\.json\fR\|\. +data back to \fBpackage\.json\fP and, if present, \fBnpm\-shrinkwrap\.json\fP\|\. .P -The \fBnewversion\fR argument should be a valid semver string, \fIor\fR a -valid second argument to semver\.inc (one of "patch", "minor", "major", -"prepatch", "preminor", "premajor", "prerelease")\. In the second case, +The \fBnewversion\fP argument should be a valid semver string, \fIor\fR a +valid second argument to semver\.inc (one of \fBpatch\fP, \fBminor\fP, \fBmajor\fP, +\fBprepatch\fP, \fBpreminor\fP, \fBpremajor\fP, \fBprerelease\fP)\. In the second case, the existing version will be incremented by 1 in the specified field\. .P -If run in a git repo, it will also create a version commit and tag, and fail if -the repo is not clean\. This behavior is controlled by \fBgit\-tag\-version\fR (see -below), and can be disabled on the command line by running \fBnpm -\-\-no\-git\-tag\-version version\fR +If run in a git repo, it will also create a version commit and tag\. +This behavior is controlled by \fBgit\-tag\-version\fP (see below), and can +be disabled on the command line by running \fBnpm \-\-no\-git\-tag\-version version\fP\|\. +It will fail if the working directory is not clean, unless the \fB\-\-force\fP +flag is set\. .P -If supplied with \fB\-\-message\fR (shorthand: \fB\-m\fR) config option, npm will +If supplied with \fB\-\-message\fP (shorthand: \fB\-m\fP) config option, npm will use it as a commit message when creating a version commit\. If the -\fBmessage\fR config contains \fB%s\fR then that will be replaced with the +\fBmessage\fP config contains \fB%s\fP then that will be replaced with the resulting version number\. For example: .P .RS 2 @@ -34,8 +35,8 @@ npm version patch \-m "Upgrade to %s for reasons" .fi .RE .P -If the \fBsign\-git\-tag\fR config is set, then the tag will be signed using -the \fB\-s\fR flag to git\. Note that you must have a default GPG key set up +If the \fBsign\-git\-tag\fP config is set, then the tag will be signed using +the \fB\-s\fP flag to git\. Note that you must have a default GPG key set up in your git config for this to work properly\. For example: .P .RS 2 @@ -51,17 +52,48 @@ Enter passphrase: .fi .RE .P -If "preversion", "version", "postversion" in the "scripts" property of -the package\.json, it will execute by running \fBnpm version\fR\|\. preversion -and version ware executed before bump the package version, postversion -was executed after bump the package version\. For example to run \fBnpm version\fR -after passed all test: +If \fBpreversion\fP, \fBversion\fP, or \fBpostversion\fP are in the \fBscripts\fP property of +the package\.json, they will be executed as part of running \fBnpm version\fP\|\. +.P +The exact order of execution is as follows: +.RS 0 +.IP 1. 3 +Check to make sure the git working directory is clean before we get started\. +Your scripts may add files to the commit in future steps\. +This step is skipped if the \fB\-\-force\fP flag is set\. +.IP 2. 3 +Run the \fBpreversion\fP script\. These scripts have access to the old \fBversion\fP in package\.json\. +A typical use would be running your full test suite before deploying\. +Any files you want added to the commit should be explicitly added using \fBgit add\fP\|\. +.IP 3. 3 +Bump \fBversion\fP in \fBpackage\.json\fP as requested (\fBpatch\fP, \fBminor\fP, \fBmajor\fP, etc)\. +.IP 4. 3 +Run the \fBversion\fP script\. These scripts have access to the new \fBversion\fP in package\.json +(so they can incorporate it into file headers in generated files for example)\. +Again, scripts should explicitly add generated files to the commit using \fBgit add\fP\|\. +.IP 5. 3 +Commit and tag\. +.IP 6. 3 +Run the \fBpostversion\fP script\. Use it to clean up the file system or automatically push +the commit and/or tag\. + +.RE +.P +Take the following example: .P .RS 2 .nf -"scripts": { "preversion": "npm test" } +"scripts": { + "preversion": "npm test", + "version": "npm run build && git add \-A dist", + "postversion": "git push && git push \-\-tags && rm \-rf build/temp" +} .fi .RE +.P +This runs all your tests, and proceeds only if they pass\. Then runs your \fBbuild\fP script, and +adds everything in the \fBdist\fP directory to the commit\. After the commit, it pushes the new commit +and tag up to the server, and deletes the \fBbuild/temp\fP directory\. .SH CONFIGURATION .SS git\-tag\-version .RS 0 |