# NPM包管理工具
这个部分是扩展npm命令的篇章,主要应用场景:
- 版本号管理
- 发包
# 版本号管理
npm version命令是用来管理package.json中的version属性的。
相比于使用git tag命令,npm version = 修改package.json中的version + git tag打标签。
并且,npm version针对于语义化的版本号,设置了不同的命令:
预发布相关:
- prerelease
- prepatch
- preminor
- premajor
正式发布相关
- patch
- minor
- Major
# 预发布相关
# npm version
这里主要是npm version
命令的相关介绍。
-> npm version --help
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]
(run in package dir)
'npm -v' or 'npm --version' to print npm version (6.4.1)
'npm view <pkg> version' to view a package's published version
'npm ls' to inspect current package/dependency versions
直接使用npm version
:
{
'vue3-toimc-admin-doc': '1.0.0',
npm: '6.14.17',
ares: '1.18.1',
brotli: '1.0.9',
cldr: '40.0',
icu: '70.1',
llhttp: '2.1.4',
modules: '83',
napi: '8',
nghttp2: '1.42.0',
node: '14.19.2',
openssl: '1.1.1n',
tz: '2021a3',
unicode: '14.0',
uv: '1.42.0',
v8: '8.4.371.23-node.87',
zlib: '1.2.11'
}
# prerelease
pre-预
release-发布版
所以,prerelease就是预发版。
TIP
记住:release是最后面的号。
原则:
- 当执行
npm version prerelease
时,如果没有预发布号,则增加minor,同时prerelease 设为0; - 如果有prerelease, 则prerelease 增加1。
# package.json 中的版本号1.0.0变为 1.0.1-0
➜ npm version prerelease
v1.0.1-0
# 再次执行 package.json 中的版本号1.0.1-0变为 1.0.1-1
➜ npm version prerelease
v1.0.1-1
# 如何手动修改,version为1.0.0-1,再次执行
➜ npm version prerelease
v1.0.0-2
# prepatch
直接升级小号,增加预发布号为0。
TIP
因为跟pre预发布有关,所以会带个尾巴。
# package.json 中的版本号1.0.1-1变为 1.0.2-0
➜ npm version prepatch
v1.0.2-0
# preminor
直接升级中号,小号置为0,增加预发布号为0。
➜ npm version preminor
v1.1.0-0
# premajor
直接升级大号,中号、小号置为0,增加预发布号为0。
➜ npm version premajor
v2.0.0-0
# 正式版本相关
# patch
TIP
记住:patch是小号。
原则:
- patch:如果有prerelease ,则去掉prerelease ,其他保持不变;
- 如果没有prerelease ,则升级minor,即是最小号。
# package.json 中的版本号2.0.0-0变为 2.0.0;
➜ npm version patch
v2.0.0
# package.json 中的版本号2.0.0变为 2.0.1;
# 再次执行npm version patch
➜ npm version patch
v2.0.1
# minor
TIP
记住:minor是中间的号。
原则:
- 如果没有prerelease,直接升级minor, 同时patch设置为0;
- 如果有prerelease, 首先需要去掉prerelease;
- 如果patch为0,则不升级minor;
- 如果patch不为0, 则升级minor,同时patch设为0;
➜ npm version minor
v2.1.0
# npm version premajor 2.1.0–> 3.0.0-0;
# npm version minor 3.0.0-0–> 3.0.0;
# npm version prepatch 3.0.0–>3.0.1-0;
# npm version minor 3.0.1-0–>3.1.0;
# major
TIP
记住: major是主号,也是大号
# 如果没有premjor,则直接升级major,其他位都置为0;
➜ npm version major
v4.0.0
➜ npm version major
v5.0.0
# 如果有premajor,则会去掉premajor版本号;
➜ npm version premajor
v6.0.0-0
➜ npm version major
v6.0.0
# 如果有preminor/prepatch/prerelease,则会去掉`release`版本;
➜ npm version prepatch
v6.0.3-0
➜ npm version major
v7.0.0
# 如果有minor/patch,则会直接置0,升级主版本号;
➜ npm version patch
v7.2.1
➜ npm version major
v8.0.0
主要目的升级major,原则:
- 如果没有premajor,则直接升级major,其他位都置为0;如果有premajor,则会去掉premajor版本号;
- 如果有preminor/prepatch/prerelease,则会去掉
release
版本; - 如果有minor/patch,则会直接置0,升级主版本号;
# 发包相关
常见的npm publish
、npm link
、npm login
这里不介绍了,主要介绍与发包之后的命令:
- 查看历史版本
- 删除版本
- 废弃版本
# 查看历史版本
言归正传,如何查看已发布包的历史版本呢?
使用命令:
// 查看历史版本信息(最多100条)
npm view [<pkg>][@<version>] versions
// 假设我的包名是test 版本号是1.0.0
npm view test@1.0.0 versions
一般来说,这个命令就已经够了,如果发布的版本有100个以上,可能下面的这个命令能用的上。
和上面的类似,只需在后面加上 --json
即可查看所有的历史版本。
// 查看所有版本信息
npm view [<pkg>][@<version>] versions --json
// 假设我的包名是test 版本号是1.0.0
npm view test@1.0.0 versions --json
如果想查看最新的版本呢?
// 查看最新版本信息
npm view [<pkg>][@] version
// 假设我的包名是test 版本号是1.0.0
npm view test@1.0.0 version
注意细节哦,versions
少了一个s
。
但是这个是针对正式版本的,如果是测试版本,是不会出现在最新版本的查询里的。
# 删除版本
删除版本前,一定要确认这个版本的包已经没有依赖(废弃)了。
// 假设我的包名是test 测试版本号是1.0.0-beta.0
// 删除包的指定版本
npm unpublish test@1.0.0-beta.0
// 强制删除包的指定版本
npm unpublish test@1.0.0-beta.0 --force
// 删除包
npm unpublish test
// 强制删除包
npm unpublish test --force
# 废弃版本
什么是废弃版本?
就是npm包还在,但是受某些因素影响,该包不再维护,不再更新了。
简单来说,就是不影响使用,但是在安装废弃版本的时候会有提示。
npm deprecate <pkg>[@<version>] <message>
// 假设我的包名是test 版本号是1.0.1
npm deprecate test '不再维护'
npm deprecate test@1.0.1 '不再维护'
← Node Koa(下一代web框架) →