@brent_rb/npm-version-suffix

1.0.0 • Public • Published

NPM Version Suffix

A tiny helper that automatically add or remove suffix to the version in the package.json of your NPM package.

The Problem

This helper is useful for publishing a NPM package with your CI/CD pipeline.

Imagine that you are preparing for a new release 1.2.3 with a bunch of features. When a feature is merged into a stable branch, e.g. development, You might want to publish a beta version (e.g. 1.2.3-beta.1 or 1.2.3-rc.2). If all the features are in place, merge development into master and then publish 1.2.3 as an official release.

Normally you could apply Continuous Integration with pipelines. But CD is a bit tricky: the version number is manually added, which means that you cannot simply add publish as part of your pipeline. In order to enable Continuous Delivery, you need an automated process to increment the beta version number.

Usage

This tool can automatically add suffix to the version in the package.json. The default suffix is -rc.. You can change it by providing an environment variable SUFFIX as follows:

{
    "version": "1.2.3",
    "scripts": {
        "foo": "add-suffix",
        "unfoo": "remove-suffix"
    }
}

In your CI/CD pipeline, you can run the following script between build and publish.

npm run foo
// or
yarn foo

You probablly don't really need remove-suffix, but it might be handy sometimes :-)

This tool will get the latest beta version of 1.2.3, e.g. 1.2.3-rc.7 from the npm registry of your package, and then change the version of the current job to 1.2.3-rc.8, and then the pipeline can continue to publish.

Node.JS

You can also use this helper in any of your NodeJS project.

import { addSuffix, removeSuffix } from 'npm-version-suffix';

// by defualt, the suffix is "-rc."
addSuffix();
// You can assing your own suffix.
addSuffix('alpha');  // 1.2.3-alpha.1
// It will remove unnecessary leading dashes and trailing dots
addSuffix('--beta..);   // still "1.2.3-beta.3"

Package Sidebar

Install

npm i @brent_rb/npm-version-suffix

Weekly Downloads

63

Version

1.0.0

License

MIT

Unpacked Size

5.54 kB

Total Files

9

Last publish

Collaborators

  • brent_rb