Npm установка игнорирует тильду (~) в номере версии - PullRequest
0 голосов
/ 26 марта 2020

Я бы хотел установить пакет версии 1.8.x и позже иметь возможность автоматически обновлять эту зависимость в диапазоне> = 1.8.0 <1.9.0. </p>

Я попытался выполнить эту команду:

npm install example-package@~1.8 --save

К сожалению, он добавляет эту запись в мои package.json:

"example-package" : "^1.8.0"

Но я хочу вот что:

"example-package" : "~1.8.0"

Как это возможно сделать это с npm install, без редактирования вручную файла package.json?

1 Ответ

0 голосов
/ 26 марта 2020

Префикс semver определяется конфигурацией save-prefix. Значением по умолчанию является каретка (^), которую можно проверить, выполнив следующую команду npm config:

npm config get save-prefix

К сожалению, npm install Команда не имеет возможности указать это, поэтому вам нужно сделать следующее:

  1. Установить значение save-prefix в тильду (~), выполнив:

    npm config set save-prefix="~"
    
  2. Установите пакет, выполнив:

    npm i example-package@1.8.0 --save
    

    Примечание: Тильда (~) не должна быть включена в установку команда.

  3. Наконец, установите значение save-prefix обратно на его значение по умолчанию, то есть каретку (^), запустив:

    npm config delete save-prefix
    

    Примечание: Вы не сделали бы этот последний шаг, если бы хотели, чтобы все будущие npm install использовали префикс тильды (~) вместо каретки (^).

Приведенные выше шаги добавят следующую запись в package.json:

"example-package" : "~1.8.0"

Обратите внимание на тильду ~ вместо каретки по умолчанию ^


Вы можете использовать оператор && для объединения вышеупомянутых указанные команды в составную команду. Например:

npm config set save-prefix="~" && npm i example-package@1.8.0 --save && npm config delete save-prefix
...