forked from CcSimple/vue-plugin-hiprint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
change-version.js
35 lines (35 loc) · 1.32 KB
/
change-version.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
let path = require('path')
const fs = require("fs");
const exec = require('child_process').exec;
const pkgPath = path.join(__dirname, '../package.json');
let pkg = JSON.parse(fs.readFileSync(pkgPath));
let version = pkg.version;
let isNewVersion = 'newVersion' == process.argv[2];
console.log(version);
console.log('newVersion', isNewVersion);
const vList = version.split(".");
const vEnd = vList[vList.length - 1];
if (isNewVersion) {
version = vList.slice(0, vList.length - 1).join(".") + "." + (parseInt(vEnd) + 1);
console.log('=> ', version);
} else {
if (`${vEnd}`.includes('beta')) {
let pre = parseInt(vList[vList.length - 1]);
let cur = 'beta' + (parseInt(vList[vList.length - 1].split('-')[1].replace(/[^\d./]/g, '') || 0) + 1);
version = `${vList[0]}.${vList[1]}.${pre}-${cur}`;
console.log('=> ', version);
} else {
let cur = parseInt(vList[vList.length - 1]) + 1;
version = `${vList[0]}.${vList[1]}.${cur}-beta1`;
console.log('=> ', version);
}
}
pkg.version = version;
let pkgStr = JSON.stringify(pkg, null, 2);
fs.writeFileSync(pkgPath, pkgStr);
let cmd = `git add package.json && git commit -m 'pub-beta ${version}' && git tag ${version}`;
if (isNewVersion) {
cmd = `git add package.json && git commit -m 'pub ${version} && git tag ${version}'`;
}
exec(cmd);
console.log('exec cmd ==> ', cmd);