目录
现在工作中做项目大都是vue-cli、react-create-app脚手架一把梭,工作的焦点更多是在写业务上,也就缺失了一些前端工程化所必要的知识,这篇主要记录一些npm管理相关的知识
Semver
Semver(语义化版本号)是一种软件版本号的语义化规范。
- 软件的版本通常由三位组成: X.Y.Z,整数且不可在数字前补零,对应主版本号.次版本号.修订号,例如: 2.1.14, 2.2.3
- 主版本号(major):大版本的更新改动,做了不兼容的API修改
- 次版本号(minor):添加新功能,可向下兼容
- 修订号(patch):多用于修复bug,可向下兼容
- 当要发行大版本或者核心Feature但是不能保证功能100%正常时,就需要发布先行版本,一般包括alpha、beta、rc, 例如 2.1.14-rc.1
- alpha: 内部版本
- beta: 公测版本
- rc: 正式版本的候选版本
- npm依赖时,npm install 安装第三方包,把依赖的包名和版本号写入到package.json文件中,此时版本号一般有四种情况:
- 固定版本号,安装固定版本: 1.2.0
- 兼容版本新发布的补丁版本,会安装X.Y一致,Z最新的版本,可以保证依赖包更新修复bug时能及时得到修复,又不会产生兼容性问题:~1.2.0、1.2.x、1.2
- 兼容模板新发布的小版本、补丁版本,会安装X一致,Y.Z最新的版本: ^1.2.0、1.x、1
- 兼容模块新发布的大版本、小版本、补丁版本,会安装最新版本: *、x
- 当项目package.json的依赖中没有对应依赖包并且命令行输入
npm i <pkg>
不指定版本号时,默认等于npm i <pkg>@latest
,即等于安装依赖的