Table of Contents
为什么要用 npm version
- npm version 是命令行工具,简洁高效。
- npm version 的 tag 变动会同步到 package.json 的 version 字段
- 使用 npm version 不需要关心之前的版本号是什么,工具会根据命令自动递增版本号
如何使用
npm version 的使用很简单:npm version xxx [-m message]。
这里的 xxx 有三个可选值:
- major—主版本
- minor—次版本
- patch—补丁版本
这三个值单词分别对应版本号的三个部分。比如:1.2.3。这里的 1 对应 major,2 对应 minor,3 对应 patch。
这里的 -m message 是可选信息。如果不填,提交信息就是版本号。填了,就是 message 部分。
使用步骤
首先,将本地代码的修改 commit。因为 npm version 的执行需要工作区是干净的。
git add . git commit -m 'xxx'
然后,使用 npm version 修改版本号。npm version 会自动修改 package.json 的 version 字段并 add 和 commit。
npm version patch
将修改推送到远程服务器:
// 推送 commit git push origin [branch] // 推送 tag git push origin --tags
删除本地 tag
有时,本地已经打了 tag,但推送到服务器报错——远程已经存在相同的 tag。这时,就需要删除本地的重复 tag,并重新打 tag。
// 删除本地 tag git tag -d v1.2.3
指定 tag
因为有时远程存在更新的 tag,而 package.json 并没有及时更新。这时,可以指定 tag。
npm version 2.0.0
设置 tag 前缀
默认情况下,tag 的前缀是小写的 v。如果需要自定义,可以在项目根目录的 .npmrc 文件里配置:
// .npmrc tag-version-prefix = 'V'
.npmrc 配置参考这个地址:https://docs.npmjs.com/cli/v6/using-npm/config#tag-version-prefix
比如有时需要配置 npm 源:
// .npmrc registry = https://registry.npmmirror.com
包引入版本号,并在浏览器控制台显示
有时,为了快速定位线上版本是不是我们期望的版本,或者为了其他目的,我们需要将版本号引入项目。
// 项目文件,比如入口文件:main.js // 把版本挂到 window 上,方便定位版本 window.version = require('../package.json').version console.log(`%c version: ${window.version}`, 'background: #333;color: #bada55')
控制台显示版本号有一个需要注意的地方:打包需要在修改版本号之后。这意味着本地打包无法实现这个功能——不是说代码无效,而是打印出来的版本并不正确。