Выбор ответа Junior CI: пайплайны и артефакты обновлено
npm ci против npm install
Вопрос
Почему в пайплайне используют npm ci, а не npm install?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: npm ci ставит строго версии из lock-файла и падает при расхождении с ним. npm ci удаляет nodemodules и ставит ровно то, что в package-lock.json, а при рассинхроне с package.json завершается ошибкой. npm install может обновить lock-файл, и две сборки одного коммита получат разные зависимости.
Варианты ответа
npm ciработает без интернета, беря пакеты из встроенного кеша CInpm ciне ставит devDependencies, поэтому сборка меньше и быстрееnpm ciставит строго версии из lock-файла и падает при расхождении с нимправильный ответnpm installв CI запрещён лицензией npm для коммерческих проектов
Разбор
npm ci удаляет node_modules и ставит ровно то, что в package-lock.json, а при рассинхроне с package.json завершается ошибкой. npm install может обновить lock-файл, и две сборки одного коммита получат разные зависимости. Интернет npm ci нужен (если нет локального кеша), devDependencies он ставит по умолчанию, лицензионных ограничений нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.