package.json中的版本号限定符
本文发布于38天前,最后更新于 38 天前,其中的信息可能已经有所发展或是发生改变。

版本限定符

版本控制中比较普遍的格式:为 Major.Minor.Revision

Major表示大版本,Minor表示小版本,Revision表示修正版本号

比如1.7.5中,1就是大版本,7就是小版本,5就是修正版本号

Ref:版本号百度百科

而在package.json文件里,包管理器有以下版本限定符 ^1.0.0 ~1.0.0 >=1.0.0 <1.0.0 * 1.0.x

  • ^

    这个符号表示兼容某个版本

    版本号中最左边的非0数字的右侧可以任意

    或者缺少某个版本号的位置可以任意

    • ^1.7.5 等同于 1.x.x
    • ^0.7.5 等同于 0.7.x
    • ^1.7 等同于 1.7.x
  • ~

    这个符号表示大概匹配某个版本

    如果Minor版本号指定了,那么Minor版本号不变,而Revision版本号任意

    如果Minor和Revision版本号未指定,那么Minor和Revision版本号任意

    • ~1.7.0 等同于 1.7.x
    • ~1.7 同上
    • ~1 等同于 1.x.x
  • 1.0.0 指定使用1.0.0版本
  • >=1.0.0 <=1.0.0 >1.0.0 <1.0.0都是字面意思
  • * 任意版本

背景

今天遇到了一个非常潜在的问题,没有修改package.json,但pnpm自动帮我更新了依赖,其中有个依赖@pureadmin/utils更改了用法,导致运行时报错 storageLocal.getItem is not a function。 翻看了package.json,发现我是通过"@pureadmin/utils": "^1.7.5"来指定版本号的,^限定符会让pnpm在一个大版本中选择更新的版本 换句话说就是在[1.0.0,2.0.0)这一版本范围中的两个小版本1.7.5和1.8.5,pnpm会自动选择1.8.5。去除版本限定符^"@pureadmin/utils": "^1.7.5"修改为"pureadmin/utils": "1.7.5"即可让pnpm限定版本为1.7.5

原项目也在这个commit中更新了用法

所以一般情况下还是要先顶一下依赖的版本,否则就得时时关注依赖的更新了。

整活

这是我最近在学习的一个项目,Pure-Admin,他是一个基于Vue3、Vite、TypeScriptElement-Plus的前端后台项目,通过阅读项目源码也让我快速地建立了对vue,ts等框架和语言的相关认识,同时通过查漏补缺,也让我深入了解了相关技术细节。不过知识渊博,部分深入的知识还需要进一步阅读源码来理解掌握,好在至少快速的领悟了如何运用vue等框架来建立前端项目的相关技术实现。而这些知识的获取离不开源码与项目文档,这也体现了阅读源码与文档这一技能的重要性与必要性。

项目与相关技术文档传送门:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Source: https://github.com/zhaoolee/ChineseBQB
Source: https://github.com/zhaoolee/ChineseBQB
Source: https://github.com/zhaoolee/ChineseBQB
颜文字
Emoji
小恐龙
花!
滑稽大佬
演奏
程序员专属
上一篇
下一篇