Выбор ответа Junior Пакеты и зависимости обновлено

npm ci или npm install в CI

Вопрос

Почему в CI и Dockerfile ставят зависимости через npm ci, а не npm install?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ставит строго по lock-файлу и падает при расхождении с package.json. Цель CI: собрать ровно то, что проверено у разработчика. npm ci не меняет lock-файл и гарантирует то же дерево зависимостей. - devDependencies npm ci ставит, для их пропуска нужен --omit=dev. - Обновлять до последних версий он как раз не…

Варианты ответа

  1. npm ci ставит только dependencies без devDependencies
  2. npm ci обновляет все пакеты до последних версий, чтобы тестировать свежее
  3. npm ci работает без доступа к сети, из встроенного кеша
  4. Ставит строго по lock-файлу и падает при расхождении с package.jsonправильный ответ

Разбор

Цель CI: собрать ровно то, что проверено у разработчика. npm ci не меняет lock-файл и гарантирует то же дерево зависимостей.

  • devDependencies npm ci ставит, для их пропуска нужен --omit=dev.
  • Обновлять до последних версий он как раз не будет.
  • Сеть или кеш ему нужны, офлайн-режим тут ни при чём.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.