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

devDependencies в продакшн-образе

Вопрос

Как установить зависимости в продакшн-образе Node.js, чтобы туда не попали ESLint, Vitest и прочие devDependencies?

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

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

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

Коротко

Правильный ответ: npm ci --omit=dev. npm ci ставит строго по lock-файлу, а --omit=dev пропускает devDependencies.

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

  1. npm install --global
  2. npm ci --omit=devправильный ответ
  3. npm ci --save-dev
  4. Удалить devDependencies из package.json перед коммитом

Разбор

npm ci ставит строго по lock-файлу, а --omit=dev пропускает devDependencies. Обычно это делают в отдельной стадии multi-stage сборки, а сборку проекта с dev-зависимостями выполняют в стадии build.

  • Глобальная установка не связана с dev и prod.
  • --save-dev это флаг для добавления пакета в devDependencies.
  • Без devDependencies в репозитории не будет работать сборка и тесты.

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

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