Выбор ответа Junior Пакеты и зависимости обновлено
devDependencies в продакшн-образе
Вопрос
Как установить зависимости в продакшн-образе Node.js, чтобы туда не попали ESLint, Vitest и прочие devDependencies?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: npm ci --omit=dev. npm ci ставит строго по lock-файлу, а --omit=dev пропускает devDependencies.
Варианты ответа
npm install --globalnpm ci --omit=devправильный ответnpm ci --save-dev- Удалить
devDependenciesизpackage.jsonперед коммитом
Разбор
npm ci ставит строго по lock-файлу, а --omit=dev пропускает devDependencies. Обычно это делают в отдельной стадии multi-stage сборки, а сборку проекта с dev-зависимостями выполняют в стадии build.
- Глобальная установка не связана с dev и prod.
--save-devэто флаг для добавления пакета вdevDependencies.- Без
devDependenciesв репозитории не будет работать сборка и тесты.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Почему vite запускается из npm run
Следующий вопрос
Уязвимая транзитивная зависимость