- 在写文章的时候, 看到了AI工具, 那今天就让 AI 帮我们写吧
- 前面的内容是 AI 生成的, 后面还是自己写一下
AI 生成内容
在package.json文件中,库的版本号通常使用语义化版本号进行管理。语义化版本号包含三个数字,以.分隔,分别表示主版本号、次版本号和修订号。
主版本号:当你做了不兼容的修改时,才需要增加主版本号。 次版本号:当你做了向下兼容的修改时,才需要增加次版本号。 修订号:当你做了向下兼容的 bug 修复时,才需要增加修订号。
例如,如果库的版本号为1.2.3,则表示这是主版本号为1,次版本号为2,修订号为3的版本。
在package.json文件中,可以通过dependencies、devDependencies、peerDependencies等字段来指定所依赖的库及其版本号。例如:
{
"name": "my-app",
"version": "1.0.0",
"dependencies": {
"react": "^17.0.0"
}
}
这表示应用程序my-app依赖于react库的版本范围为17.x,最新版本为17.0.0。当执行npm install命令时,会自动安装符合版本范围的最新版本的react库。
npm的更新规则是,如果所依赖的库有更新版本,且该库的版本范围允许安装更新版本,则会自动更新所依赖的库。如果所依赖的库没有更新版本,则不会自动更新。
可以使用npm update命令手动更新所依赖的库。此外,还可以使用npm outdated命令查看哪些库有可更新的版本,使用npm install --save命令安装最新版本的库,等等。
版本号格式
- npm 版本号遵循 semver 规范。
- 版本号格式为 major.minor.patch。
格式: {major} . {minor} . {patch} - {pre-release}
即: {主版本号} . {次版本号} . {修补版本号} - {非正式版版本号}
符号对照表
| 符号 | 示例 | 描述 | 备注 |
|---|---|---|---|
| 1.2.3 | 完全匹配当前版本 | ||
| > | >1.2.3 | 大于 1.2.3 的版本 | |
| >= | >=1.2.3 | 大于或等于 1.2.3 的版本 | |
| < | <1.2.3 | 小于 1.2.3 的版本 | |
| <= | <=1.2.3 | 小于或等于 1.2.3 的版本 | |
| - | 1.2.3-1.2.9 | 在 1.2.3 到 1.2.9 之间的版本 | |
| x | 1.2.x | 主版本号和次版本号相同, 补丁版本任意 | |
| ~ | ~1.2.3 | 主版本号和次版本号相同, 大于等于当前的版本(即: 补丁版本号大于等于 3) | |
| ^ | ^1.2.3 | 主版本号相同,大于等于当前的版本。如: 1.2.9 1.3.1 1.4.8 | 兼容版本(不超过最 左边非零 数字) |
| latest | latest | 最新版本 | |
| * | * | 任意版本 | |
| version1 || version2 | 1.2.3 || >2.3.4 | 等于 1.2.3 或者 大于 2.3.4 |
-
常用的就是
~^这两个, 其他的也常用但很容易理解不需要单独记忆 -
^它有点特别需要特殊注意一下, 兼容版本(不超过最 左边非零 数字)- 当我们指定了这样的版本
^0.1.2时 - 他可以升级的版本为
0.1.x, 第二位是可以升级的 - 原因是规定了: 不超过最 左边非零 数字
- 当我们指定了这样的版本
-
在安装包时, 一般会安装符合要求的最新的版本
小结
- 我认为我们了解 version 更新规则就可以了, 其他的不是特别重要可以不去记忆
- 常用的主要有两个
~和^, 需要重点理解一下就可以了 - 还有个问题: 你们觉得AI生成的怎能样呢? (注: 提示词为[ package.json中库的版本号及npm的更新规则 ])
参考文档
AI 部分我也不知道他参考的谁, 所以就不写了
juejin.cn/post/705742…