Выбор ответа Middle Пакеты и зависимости обновлено
Куда положить react в библиотеке
Вопрос
Ты публикуешь библиотеку React-компонентов. Как правильно объявить react?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В peerDependencies, чтобы у приложения была одна копия React. Если библиотека потащит свой React в dependencies, в приложении может оказаться две копии, и хуки сломаются с ошибкой про невалидный вызов хука. peerDependencies говорит: используй React хозяина нужной версии. - dependencies как раз грозит…
Варианты ответа
- В
peerDependencies, чтобы у приложения была одна копия Reactправильный ответ - В
dependencies, чтобы библиотека работала сама по себе - Не объявлять вовсе, react и так будет у приложения
- В
devDependencies, тогда он попадёт в бандл библиотеки
Разбор
Если библиотека потащит свой React в dependencies, в приложении может оказаться две копии, и хуки сломаются с ошибкой про невалидный вызов хука. peerDependencies говорит: используй React хозяина нужной версии.
- dependencies как раз грозит дублированием.
- Без объявления пакетный менеджер не проверит совместимость версий, а строгие менеджеры вроде pnpm не дадут импортировать необъявленное.
- devDependencies не ставятся потребителям библиотеки и не делают пакет частью бандла.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.