持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情
npm版本
语义化版本
npm的版本号遵从语义化版本规范,使用 x.y.z 形式,对应MAJOR.MINOR.PATCH,也即主版本号.次版本号.修订版本号,各位置的版本号的含义如下:
| 版本号 | 含义 | 兼容性 |
|---|---|---|
| 主版本号 | 如有改变,表示对API作了改动 | 不兼容 |
| 次版本号 | 如有改变,表示增加了新feature | 向下兼容 |
| 修订版本号 | 如有改变,表示修复了存在的bug | 向下兼容 |
💡指导意义:不要轻易改动主版本号,可能会导致功能上出现各种难以定位的问题
先行版本
x.y.z 格式是模块正式版本,重要模块为了保证稳定,会在放出正式版本之前提供先行版本
alpha: 内部测试版,主要给开发和测试找bug用beta: 公开测版本,主要用于给用户提前体验一些功能rc: 即Release candidate,正式版本的候选版本,可以理解为预览版,不会再增加新功能,再改一些小bug,就会到正式的版本了
npm版本控制
安装npm包时,版本前符号的含义:
*:使用任意版本^x.y.z:x位与指定版本一致,y、z位使用最新版本~x.y.z:x和y位与指定版本一致,z位使用最新版本x.y.z和@x.y.z:x、y和z全部锁死,使用指定的版本
升级版本相关的npm指令
- 升级主版本号:
npm version major - 升级次版本号:
npm version minor - 升级修订版本号:
npm version patch - 更新指定的包:
npm update 包的名称
node版本
版本号和生命周期
与npm一样,node的版本号同样遵从语义化版本规范,也即主版本号.次版本号.修订版本号
如上面官方提供的图,在每个版本(这里指的是
主版本号)node.js的发布周期中,随着时间的推进:
- 偶数的
主版本号依次会经历CURRENT->Active Long Term Support (LTS)->Maintenance Long Term Support (LTS)三个阶段 - 奇数的
主版本号只有CURRENT阶段
关于每个阶段的含义:
-
CURRENT阶段:Node.js的开发者专注于开发必要的功能,并完善已有的API,通常持续时间较短,更新较快;我们可以使用该阶段发布的Node.js体验到最新功能,但也可能会遇到各种问题- 通常会在每年的 4 月发布新的奇数版本,比如
Node.js 18.0.0就是2022-04-18发布的 - 每年的 10 月发布新的偶数版本,比如
Node.js 17.0.0就是2021-10-19发布的 Node.js 19.0.0 is comming😅
- 通常会在每年的 4 月发布新的奇数版本,比如
-
Active LTS阶段:正在积极维护和升级LTS,该阶段Node.js的开发者已经对新功能、错误修复和新特性作了审核;该阶段发布的Node.js具有良好的稳定性和安全性 -
Maintenance LTS阶段:维护LTS,这个阶段结束之后该版Node.js就不会再被开发者维护了
💡指导意义
-
想尝试
node的一些新特性,做一些实验性的项目,就用Current版 -
用于生产环境开发项目的话,老老实实用
LTS版,同时稍微注意一下维护的结束时间
node版本控制
以nvm为例,安装包下载地址:Releases · coreybutler/nvm-windows (github.com)
安装前保证电脑上无Node.js,之后一路Next
nvm常用命令:
- 安装指定版本
node:nvm install 16.18.0 - 查看已安装版本列表:
nvm list - 切换
node版本:nvm use 14.15.1
node与npm的版本匹配
详见官网:Previous Releases | Node.js (nodejs.org)
总结
- 针对已有项目,安装
npm包时,不要轻易改动其主版本号,最好使用~x.y.z,甚至@x.y.z - 注意生产环境使用
LTS版node,注意node与npm版本的匹配