Привет, разработчики, Сегодня я узнал интересное о символьной функции пакета node ( ^ ) и ( ~ tidle ). Позвольте мне поделиться этим с вами, ребята.
Npm рекомендует следовать семантическому управлению версиями.

О семантическом управлении версиями

Чтобы сохранить работоспособность, надежность и безопасность экосистемы JavaScript, каждый раз, когда вы вносите существенные обновления в принадлежащий вам пакет npm, мы рекомендуем публиковать новую версию пакета с обновленным номером версии в package.json файле, который следует за семантической спецификация версий.

Использование семантического управления версиями для указания типов обновлений, которые может принять ваш пакет.

Вы можете указать, какие типы обновлений ваш пакет может принимать из зависимостей в файле package.json вашего пакета.

Например, чтобы указать допустимые диапазоны версий до 1.0.4, используйте следующий синтаксис:

  • Выпуски исправлений: 1.0 или 1.0.x или ~1.0.4
  • Незначительные выпуски: 1 или 1.x или ^1.0.4
  • Основные выпуски: * или x

В нашем примере важно знать

У нас есть пакеты с символом вставки (^), используемым перед версией пакета. Caret имеет функцию автоматического получения последней младшей версии, доступной из npm, и установки. Но есть исключение.

Если пакет имеет версию, начинающуюся с 0.x.x, то эта функция не будет работать согласно документации Node semver.

Поэтому разработчикам приходится вручную обновлять пакеты до последней версии.

Как я узнал об этом исключении?
На самом деле я участвовал в одном проекте, в котором последний толчок был сделан 3 месяца назад, поэтому зависимости проекта были старыми. поэтому я установил npm и заметил, что пакеты vayu и vayu vue не обновляются до последней версии. Вот как я узнал этот факт о версиях npm.