纱线命令行输出与 package.json 文件不匹配

Yarn command line output does not match package.json file

在 运行 yarn upgrade per usage docs 之后,我得到这个输出:

看来我已经更新到

socket.io@2.1.1

然而,当我查看我的 package.json 文件时,我看到了这一行

"socket.io": "^2.0.4",

有没有办法验证我安装的是哪个版本,还有没有办法解决这个看似不一致的问题?

此外,yarn.lock 文件中有这样一行奇怪的代码:

socket.io@^2.0.4:
  version "2.1.1"

我怎么能理解这里发生的事情,因为这 3 个来源似乎在说不同的事情。

运行 yarn list --pattern socket.io 验证当前安装的版本。

"socket.io": "^2.0.4" 在 package.json 中表示版本 2.0.4 或 2.x.x 范围内的任何更新版本。

socket.io@^2.0.4: version "2.1.1" in yarn.lock 表示 ^2.0.4 通过安装版本 2.1.1 得到满足(比 2.0.4 更新,同时在 2.x.x 范围内)。

What's the difference between tilde(~) and caret(^) in package.json?