在一个有角度的项目中,我们有以下传递依赖项:
"dependencies": {
...
"angular-fancybox-plus": "^1.0.3",
它给出了以下树(角度扇形盒加上最后一个版本是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",
由于使用了>=
运算符,解析的版本是jquery的最新版本。此运算符允许任何大于或等于指定包的包(优先于最新的包(。您可以通过以下方式进行测试:https://semver.npmjs.com/查看每个操作员的工作方式:
https://docs.npmjs.com/about-semantic-versioning
如果您正在寻找jquery的特定版本,则需要在您的fancybox包中手动使用~
补丁符号或^
次要版本符号来指定该版本。
库将3.3.1作为依赖项的原因是由于以前存在jquery安装。由于这是一个完全满足>=2.1.4
要求的依赖项,因此它将被标记为满足angular-fancybox-plus
的依赖项要求,并且不会更新。