npm установка получила разные версии в соответствии с node-semver - PullRequest
0 голосов
/ 22 февраля 2020

Я обнаружил случай, когда npm выбор зависимостей не следовал за node-semver.
Я пытался установить superagent@1.8.5, и вот дерево зависимостей, которое я получил от npm ls:

└─┬ superagent@1.8.5
  ├── component-emitter@1.2.1
  ├── cookiejar@2.0.6
  ├─┬ debug@2.6.9
  │ └── ms@2.0.0
  ├── extend@3.0.0
  ├─┬ form-data@1.0.0-rc3
  │ ├── async@1.5.2
  │ ├─┬ combined-stream@1.0.8
  │ │ └── delayed-stream@1.0.0
  │ └─┬ mime-types@2.1.26
  │   └── mime-db@1.43.0
  ├── formidable@1.0.16
  ├── methods@1.1.2
  ├── mime@1.3.4
  ├── qs@2.3.3
  ├─┬ readable-stream@1.0.27-1
  │ ├── core-util-is@1.0.2
  │ ├── inherits@2.0.4
  │ ├── isarray@0.0.1
  │ └── string_decoder@0.10.31
  └── reduce-component@1.0.1

И вот я получил formidable@1.0.16
Но когда я посмотрел на dependencies из superagent@1.8.5, мы можем получить:

dependencies: {
    qs: "2.3.3",
    formidable: "~1.0.14",
    mime: "1.3.4",
    component-emitter: "~1.2.0",
    methods: "~1.1.1",
    cookiejar: "2.0.6",
    debug: "2",
    reduce-component: "1.0.1",
    extend: "3.0.0",
    form-data: "1.0.0-rc3",
    readable-stream: "1.0.27-1"
},

Зависимость диапазон для formidable равен ~1.0.14, что означает, что для него потребуется последняя версия патча 1.0.X, поскольку нет конфликта зависимостей для formidable.

Однако, последняя 1.0.X из formidable - это 1.0.17 ссылка ссылка , и когда я попробовал официальный калькулятор semver , я также могу получить это довольные версии 1.0.14, 1.0.15, 1.0.16, 1.0.17.

Я хочу спросить, есть ли другие правила разрешения зависимостей, которые я пропустил?
Спасибо!

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