Skip to content

Instantly share code, notes, and snippets.

@cblair
Created February 22, 2019 19:07
Show Gist options
  • Save cblair/b0416336447c4b3793222084c36e1ef8 to your computer and use it in GitHub Desktop.
Save cblair/b0416336447c4b3793222084c36e1ef8 to your computer and use it in GitHub Desktop.
bump package.json and package-lock.json versions
#!/usr/bin/env node
const fs = require('fs');
const bumpVersion = process.argv.length >= 3 ? process.argv[2] : undefined;
['./package.json', './package-lock.json'].forEach(fname => {
let packageJson = fs.readFileSync(fname, 'utf8');
const [full, semver] = packageJson.match('"version":[ ]*"([0-9]+\.[0-9]+\.[0-9]+)"');
let [major, minor, patch] = semver.split('.').map(version => parseInt(version));
if (bumpVersion === 'major') {
major += 1;
} else if (bumpVersion === 'minor') {
minor += 1;
} else if(bumpVersion === 'patch') {
patch += 1;
} else {
throw Error('usage: bump-version [major/minor/patch]');
}
packageJson = packageJson.replace(full, full.replace(semver, `${major}.${minor}.${patch}`));
fs.writeFileSync(fname, packageJson);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment