Npm переходная зависимость - не последняя версия - PullRequest
2 голосов
/ 24 февраля 2020

В проекте angular мы имеем следующую транзитивную зависимость:

  "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",

1 Ответ

1 голос
/ 24 февраля 2020

Разрешенная версия является самой последней версией jquery благодаря оператору >=. Этот оператор допускает любой пакет, больший или равный указанному пакету (с предпочтением самого последнего). Вы можете проверить это, перейдя к https://semver.npmjs.com/ и просмотрев, как работает каждый оператор:

https://docs.npmjs.com/about-semantic-versioning

Если вы ищете Для указания c версии jquery вам нужно будет указать это, используя нотацию патча ~ или нотацию вспомогательного выпуска ^ вручную в пакете fancybox.

Причина, по которой в вашей библиотеке 3.3. 1 как зависимость обусловлена ​​ранее существующей jquery установкой. Поскольку эта зависимость удовлетворяет требованию >=2.1.4, она будет помечена как удовлетворяющая требованиям зависимости для angular-fancybox-plus и не будет обновляться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...