Репозиторий Nexus Sonatype NPM не поддерживает управление версиями semver

Мы используем Nexus для нашего репозитория пакетов NPM (среди прочего). В наших файлах package.json мы используем синтаксис semver https://docs.npmjs.com/misc/semver но игнорируется. Кто-нибудь знает, есть ли у нас проблема с конфигурацией? Или, может быть, этого не следует ожидать от NPM вместо Nexus?

Пример сценария, который может произойти с нами во время разработки:

Компонент А — package.json:

    "name": "ComponentA",
    "version": "1.1.2"

Компонент Б — package.json:

    "name": "ComponentB",
    "version": "3.0.0"
    "dependencies": 
        "ComponentA": "^1.1.0"

Person1 создает и публикует версию 1.1.2 ComponentA в nexus.

а. ComponentA npm run build b. ComponentA npm публикует в nexus c. npm view ComponentA последняя версия: 1.1.2

Теперь Person2 build 7 публикует версию 1.1.1 ComponentA в.

а. ComponentA npm run build b. ComponentA npm публикует в nexus c. npm view ComponentA last: 1.1.1 Nexus рассматривает последнюю версию компонента как последнюю опубликованную, несмотря на то, что известно, что версия 1.1.2 тоже была опубликована.

Теперь, когда ComponentB устанавливает свои зависимости, я ожидаю получить версию 1.1.2 ComponentA, но на самом деле я получаю версию 1.1.1.

д. ComponentB установка npm


person Mattan Bitner    schedule 16.07.2017    source источник
comment
я получаю ту же проблему. у вас есть решение?   -  person Keerthivasan    schedule 03.05.2018


Ответы (1)


Я думаю, именно так работает npm. ^ 1.1.0 означает использование последней версии 1.1.x — в этом случае это будет 1.1.1, поскольку она помечена как последняя при загрузке в том порядке, в котором вы это сделали.

person joedragons    schedule 15.08.2017