Диспетчером пакетов проекта Node.js по умолчанию является npm.

Npm упрощает установку и обновление зависимостей. Когда зависимость указана в npmjs, например, в инфраструктуре Vue.js, даже отображается команда установки, которую можно скопировать и вставить в терминал.

Если вы давно используете npm, возможно, вы привыкли устанавливать или обновлять зависимости с помощью npm install (или более короткого npm i).

Это по-прежнему работает, но в npm v6 добавлена ​​новая команда: npm ci.

В этом эссе я хочу подчеркнуть ключевые различия между ними и различными сценариями, в которых вы можете использовать эти команды.

установка npm (также известная как npm i)

  • Установка зависимостей выполняется с помощью npm install или npm i.
  • Все требования будут установлены.
  • Точная версия вашей зависимости может быть не установлена ​​npm, если вы используете или указываете версию вашей зависимости.
  • Ваш package-lock.json может быть обновлен с помощью npm install при внесении изменений, например при добавлении новой зависимости.

npm ci

Используя npm ci, вы можете выполнять следующие задачи:

  • Чтобы убедиться, что все чисто, он удалит вашу папку node_modules.
  • Чтобы установить все зависимости с точной версией, он проверит ваш файл package-lock.json.
  • Npm ci никогда не изменит ваш package-lock.json, в отличие от установки npm. Однако для этого требуется, чтобы в вашем проекте присутствовал файл package-lock.json; в противном случае npm ci не будет работать, и вам придется использовать npm install.
  • Используйте npm ci для получения надежных сборок. Это полезно при использовании инструмента непрерывной интеграции, такого как Jenkins или GitLab CI.

Что следует использовать между npm ci и npm Install?

Если вы используете npm версии 6 или более поздней:

  • Чтобы установить новые зависимости или обновить текущие (например, перейти с версии 1 на версию 2), используйте npm install.
  • Используйте npm ci, если вы хотите установить зависимости без изменения package-lock.json или при использовании непрерывной интеграции.

Если ваша версия NPM v5 или ниже:

  • Для установки или обновления зависимостей можно использовать только npm install.

Рассмотрите возможность обновления до самой последней версии npm. Он включает в себя команду аудита npm в дополнение к npm ci, что должно упростить поиск и устранение недостатков безопасности зависимостей.

Кроме того, npm v6 должен ускорить установку зависимостей.