写个js 正则
匹配
"name": "@packages/ui-b",
"version": "0.0.18",
"element-ui": "^2.15.12",
的 version 值,然后把他最后一位 +1 变成 0.0.19
"name": "@packages/ui-b",
"version": "0.0.19",
"element-ui": "^2.15.12",
写个js 正则
匹配
"name": "@packages/ui-b",
"version": "0.0.18",
"element-ui": "^2.15.12",
的 version 值,然后把他最后一位 +1 变成 0.0.19
"name": "@packages/ui-b",
"version": "0.0.19",
"element-ui": "^2.15.12",
这个不就是JSON吗, 不能用对象名.version
拿到0.0.18
然后split('.')
得到arr = [0, 0, 18]
然后arr[2] = Number(arr[2]) + 1
, 最后对象名.version = arr.join('.')
是因为什么原因一定要用正则呢
const pkg = `"name": "@packages/ui-b",
"version": "0.0.18",
"element-ui": "^2.15.12",`
const reg = /(?<=\"version\":\s*\")[0-9.]*/
const res = pkg.replace(reg, ($1) => {
return $1.replace(/\d*$/, ($1) => Number($1 || 0) + 1)
})
const regex = /"version\":\s*([\d\.]+)\.([\d\.]+)\.([\d\.]+)/
const str = `"name": "@packages/ui-b",
"version": "0.0.18",
"element-ui": "^2.15.12",`
function replacer(match, p1, p2, p3) {
p3=Number(p3)+1
return [p1, p2, p3].join(".");
}
let str2= str.replace(regex,replacer)
console.log(str2)
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
提升版本号,直接用 npm 命令不香么
npm version patch
会自增 package.json 的 patch 版本号npm version minor
会自增 package.json 的 minor 版本号并重置 patch 为 0npm version major
……你猜--no-git-tag-version
参数或--git-tag-version=false
可以不提交,不打标签