Выбор ответа Junior CI/CD обновлено

npm ci в пайплайне

Вопрос

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

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

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

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

Коротко

Правильный ответ: Ставит строго версии из lock-файла, при расхождении падает. npm ci удаляет nodemodules, ставит ровно то, что записано в package-lock.json, и никогда не меняет lock.

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

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

Разбор

npm ci удаляет node_modules, ставит ровно то, что записано в package-lock.json, и никогда не меняет lock. Если lock не соответствует package.json, команда падает. Так в CI собирается то же, что у разработчика.

  • Ставятся все зависимости, а не только dev.
  • Обновление до последних версий это как раз то, чего в CI нужно избежать.
  • Без интернета npm ci работает только с заполненным кешем, это не его отличие.

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

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

Термины по теме