vjj(一个符合 Semantic Versioning 的版本升级工具)
由于每次更新的时候都要执行 npm version xxx
,那为什么不写一个既能升级当前包的版本号,又不用记到底是 major
还是 minor
还是 patch
还是 premajor
还是 preminor
还是 prepatch
还是 prerelease
还是每次都为了不因为只改变一个版本号就必须先提交 git 的携带 --no-git-tag-version
。
好吧,既然都写包了,那更新的时候直接把版本写进 README.md
文件也不过分吧。。。。
安装
- npm
- yarn
- pnpm
npm install vjj --save-dev
yarn add vjj --dev
pnpm add vjj --save-dev
📖 使用
- npm
- yarn
- pnpm
# 原包为 0.0.0
npx vjj -id aa # 使用预发布 preid => 0.0.1-aa.0
npx vjj -b # 使用 `npm run build` 开启打包测试
# v0.3.0 移除了 -u 子选项
# npx vjj -u # 使用 `npm update --save` 更新依赖包
npx vjj -p # 使用 `npm publish` 推送 npm 包
# 原包为 0.0.0
yarn vjj -id aa # 使用预发布 preid => 0.0.1-aa.0
yarn vjj -b # 使用 `npm run build` 开启打包测试
# v0.3.0 移除了 -u 子选项
# yarn vjj -u # 使用 `npm update --save` 更新依赖包
yarn vjj -p # 使用 `npm publish` 推送 npm 包
# 原包为 0.0.0
pnpm vjj -id aa # 使用预发布 preid => 0.0.1-aa.0
pnpm vjj -b # 使用 `npm run build` 开启打包测试
# v0.3.0 移除了 -u 子选项
# pnpm vjj -u # 使用 `npm update --save` 更新依赖包
pnpm vjj -p # 使用 `npm publish` 推送 npm 包
💡 注意
在包本地版本与 npm 版本不一致时,会显示一个版本不同的提示,但该提示不会影响后续的操作。该提示是采用本地的项目的 package.json
中的项目名与 npm 上的同名版本号进行比较,如果不一致,则会显示该提示。所以,可能有误。
可以使用 -nd
(--no-diff
) 选项来忽略该提示。除非显式的设置 -nd=false
,否则设置了该选项其默认值为 true
。但不设置该值时,默认展示该提示。
- npm
- yarn
- pnpm
# 不携带 `-nd` 选项时,值默认为 false
npx vjj
# 使用全拼禁止获取线上同名 npm 包信息,值为 true
npx vjj --no-diff
# 使用缩写禁止获取线上同名 npm 包信息,值为 true
npx vjj -nd
# 携带非 `false` ,下面的情况都认定值为 true
npx vjj -nd=true
npx vjj -nd true
npx vjj -nd=0
npx vjj -nd 0
npx vjj -nd=1
npx vjj -nd 1
npx vjj -nd='a'
npx vjj -nd 'a'
# 下面的值同不适用 `-nd` 选项
npx vjj -nd=false
npx vjj -nd false
# 不携带 `-nd` 选项时,值默认为 false
yarn vjj
# 使用全拼禁止获取线上同名 npm 包信息,值为 true
yarn vjj --no-diff
# 使用缩写禁止获取线上同名 npm 包信息,值为 true
yarn vjj -nd
# 携带非 `false` ,下面的情况都认定值为 true
yarn vjj -nd=true
yarn vjj -nd true
yarn vjj -nd=0
yarn vjj -nd 0
yarn vjj -nd=1
yarn vjj -nd 1
yarn vjj -nd='a'
yarn vjj -nd 'a'
# 下面的值同不适用 `-nd` 选项
yarn vjj -nd=false
yarn vjj -nd false
# 不携带 `-nd` 选项时,值默认为 false
pnpm vjj
# 使用全拼禁止获取线上同名 npm 包信息,值为 true
pnpm vjj --no-diff
# 使用缩写禁止获取线上同名 npm 包信息,值为 true
pnpm vjj -nd
# 携带非 `false` ,下面的情况都认定值为 true
pnpm vjj -nd=true
pnpm vjj -nd true
pnpm vjj -nd=0
pnpm vjj -nd 0
pnpm vjj -nd=1
pnpm vjj -nd 1
pnpm vjj -nd='a'
pnpm vjj -nd 'a'
# 下面的值同不适用 `-nd` 选项
pnpm vjj -nd=false
pnpm vjj -nd false
写入 CHANGELOG.md
每一次更新版本号后还要写更新日志,还需要打开 CHANGELOG.md
文件,然后再去找当前版本号,当前日期 📅,累之久矣。
现在默认添加会将 npx version xxx --no-git-tag-version
的返回值添加到 CHANGELOG.md
文件 🀄️。
- npm
- yarn
- pnpm
# 不携带 `-nc` 选项时,值默认为 false
npx vjj
# 使用全拼禁止获取线上同名 npm 包信息,值为 true
npx vjj --no-changelog
# 使用缩写禁止获取线上同名 npm 包信息,值为 true
npx vjj -nc
# 携带非 `false` ,下面的情况都认定值为 true
npx vjj -nc=true
npx vjj -nc true
npx vjj -nc=0
npx vjj -nc 0
npx vjj -nc=1
npx vjj -nc 1
npx vjj -nc='a'
npx vjj -nc 'a'
# 下面的值同不使用 `-nc` 选项
npx vjj -nc=false
npx vjj -nc false
# 不携带 `-nc` 选项时,值默认为 false
yarn vjj
# 使用全拼禁止获取线上同名 npm 包信息,值为 true
yarn vjj --no-changelog
# 使用缩写禁止获取线上同名 npm 包信息,值为 true
yarn vjj -nc
# 携带非 `false` ,下面的情况都认定值为 true
yarn vjj -nc=true
yarn vjj -nc true
yarn vjj -nc=0
yarn vjj -nc 0
yarn vjj -nc=1
yarn vjj -nc 1
yarn vjj -nc='a'
yarn vjj -nc 'a'
# 下面的值同不使用 `-nc` 选项
yarn vjj -nc=false
yarn vjj -nc false
# 不携带 `-nc` 选项时,值默认为 false
pnpm vjj
# 使用全拼禁止获取线上同名 npm 包信息,值为 true
pnpm vjj --no-changelog
# 使用缩写禁止获取线上同名 npm 包信息,值为 true
pnpm vjj -nc
# 携带非 `false` ,下面的情况都认定值为 true
pnpm vjj -nc=true
pnpm vjj -nc true
pnpm vjj -nc=0
pnpm vjj -nc 0
pnpm vjj -nc=1
pnpm vjj -nc 1
pnpm vjj -nc='a'
pnpm vjj -nc 'a'
# 下面的值同不使用 `-nc` 选项
pnpm vjj -nc=false
pnpm vjj -nc false
除非你像设定 -nd
选项一样,初显式设置 -nc=false
,否则携带 --nc=xx
或 --nc xx
都认定为 true
,即更新后不写入 CHANGELOG.md 文件。