在一个有角度的项目中,我们具有以下传递依赖项:
"dependencies": {
...
"angular-fancybox-plus": "^1.0.3",
给出以下树(angular-fancybox-plus最后的版本是1.0.3
):
`-- angular-fancybox-plus@1.0.3
+-- fancybox-plus@1.3.8
| `-- jquery@3.3.1 deduped
`-- jquery@3.3.1
我的问题是:为什么解析的jquery版本是3.3.1
而不是3.4.1
(即最新版本)?
angular-fancybox-plus
和fancybox-plus
都没有限制版本:
"dependencies": {
"jquery": ">=2.1.4",
答案 0 :(得分:1)
由于>=
运算符,已解析版本是jquery的最新版本。此运算符允许任何大于或等于指定软件包的软件包(优先于最新软件包)。您可以通过转到https://semver.npmjs.com/并查看每个操作员的工作方式进行测试:
https://docs.npmjs.com/about-semantic-versioning
如果您要查找特定版本的jquery,则需要通过在fancybox软件包中手动使用~
补丁符号或^
次要发行版符号来指定此版本。
您的库具有3.3.1作为依赖项的原因是由于先前存在的 jquery 安装。由于这是一个满足>=2.1.4
要求的依赖项,因此它将被标记为满足angular-fancybox-plus
的依赖项要求,并且不会更新。